PS:啊啊啊我終於知道了啊,原來博客園支持馬克當
,那這不就爽了嗎?!
傳送門c++
題目描述 給出一個正整數 n(n\le 100)n(n≤100),而後對這個數字一直進行下面的操做:若是這個數字是奇數,那麼將其乘 3 再加 1,不然除以 2。通過若干次循環後,最終都會回到 1。通過驗證很大的數字(7 * 10 ^ 11)均可以按照這樣的方式比變成 1,因此被稱爲「冰雹猜測」。例如當 nn 是 20,變化的過程是 [20, 10, 5, 16, 8, 4, 2, 1]。 根據給定的數字,驗證這個猜測,並從最後的 1 開始,倒序輸出整個變化序列。 輸入格式 無 輸出格式 無 輸入輸出樣例 輸入 #1 20 輸出 #1 1 2 4 8 16 5 10 20
嗯嗯,如今基本上就能夠寫了。數組
———————————————————————————不怎麼華麗的分割線———————————————————————————spa
首先咱們看看,這道題是在Luogu
的「數組」題單裏的!!!但我以爲這道題用數組模擬太麻煩,仍是用棧
吧。畢竟棧對於反轉操做比較好用。
廢話很少說,上代碼:code
#include <bits/stdc++.h> using namespace std; int main (){ int n; cin >> n; stack <int> s; s.push (n); while (s.top () != 1){ if (s.top () % 2 == 1)s.push (s.top () * 3 + 1); else s.push (s.top () / 2); } while (s.empty () == 0){ cout << s.top () << " "; s.pop (); } return 0; }
AC記錄
(話說我很久沒有更了,各位請見諒哈~)ci