CHAWTeam
目錄:DICE C語言程式破解
考慮到下面的演算法:
輸入一個整數n,依據以下規則,輸出其結果。
如果n是奇數,則n=3n+1,
其餘的狀況,則n=n/2,
當n等於1時停止。
例如,輸入22,則會印出下列的數列: 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
上面這個演算法,目前被推測認為在給予任何整數輸入值時皆可以停下來(也就是說最後都能夠輸出1)。
儘管這個演算法還蠻簡單的,但卻無法確定這個推測是否是正確的;
然而可以確定的是,在輸入值n介於0到1,000,000之間時,這個推測是正確的
(實際上,還有比0到1,000,000更多的輸入值也是可以讓演算法停下來)。
輸入一個整數n,列出其迴圈數,程式重複輸入,直到輸入的n小於等於0才停止。
輸入範例:
10
9
8
7
6
-999
輸出範例:
10 5 16 8 4 2 1
9 28 14 7 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
8 4 2 1
7 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
6 3 10 5 16 8 4 2 1
#include <stdio.h>
int san_n_jia_i(int n)
{
if (n == 1)
return 1;
else if (n % 2 == 0)
return n / 2;
else if (n % 2 == 1)
return 3 * n + 1;
}
int main()
{
int n = 1;
while (n > 0)
{
scanf("%d", &n);
if (n > 0)
{
printf("%d ", n);
while (n != 1)
{
n = san_n_jia_i(n);
printf("%d ", n);
}
printf("\n");
}
}
return 0;
}
10
9
8
7
6
-999
10 5 16 8 4 2 1
9 28 14 7 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
8 4 2 1
7 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
6 3 10 5 16 8 4 2 1
查看我們在HackMD上的所有筆記
目錄:DICE C語言程式破解
👉【幫我們一個忙!】👈
👋如果您喜歡這篇文章,請在下方按5個Like!
❤您的支持是我們最大的動力!
您只要登入帳號(Facebook、Google),在下方按5個Like,我們就會收到來自LikeCoin基金會的贊助。
您只需要支持我們,完全不會花到錢!
[name=CHAWTeam] 2022年最新版!重新編排題目順序符合原版教材,重新細修程式碼盡量避免系統判定為抄襲。 :::danger 因應平臺有變更題目與調整編排,我們正著手修正本筆記全部內容,請耐心等候更新~ 我們會保留舊題目的文章,可以當作課後練習,編排於各區段的末端。 :::
May 8, 2023[name=CHAWTeam] 目錄:DICE C語言程式破解 題目 將一個十進位正整數的奇數字數的和稱為 A,偶數字數的和稱為 B,則 A 與 B 的絕 對差值|A-B|稱為這個正整數的祕密差。 例如:263541 的奇數字數的和 A = 6+5+1 = 12,偶數字數的和 B = 2+3+4 = 9,所以 263541 的祕密差是|12-9|= 3。 給定一個十進位正整數 X,請找出 X 的祕密差。 輸入格式
Apr 18, 2022[name=CHAWTeam] 目錄:DICE C語言程式破解 題目 寫一個程式,從標準輸入取得30個整數並輸出。 格式如輸出範例所示。 輸入範例: 34
Apr 1, 2022[name=CHAWTeam] 目錄:DICE C語言程式破解 題目 河內塔問題(Tower of Hanoi)是由法國數學家盧卡斯(Édouard Lucas)引進的數學謎題: 在 3 根桿子中,有 1 桿上有 N 個從下數起由大而小的穿孔圓盤。 在每次只能移動一個圓盤,且大盤不能疊在小盤之上的規則之下,你需要以最少的次數將這 N 個圓盤全部移到另一根桿子上。
Apr 1, 2022or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up