目前我正在用C語言實現Collatz猜想問題。我可以打印一系列特定的數字。例如,如果號碼是25
那麼系列就像25 76 38 19 58 29 88 44 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 = 24
。 24
是該系列中的元素的數量。現在我想打印系列號碼,直到1
。如25,24,...
至1
。如何減少Collatz猜想程序中的數字C
這是我曾嘗試:
#include <stdio.h>
int main() {
long x, a = 0;
printf("Enter the value of X:");
scanf("%lu", &x);
printf("%ld ", x);
for (i = x * x; i >= 1; i--) {
if (x % 2 == 0) {
x = x/2;
printf("%lu ", x);
if (x == 1) {
break;
}
} else {
x = (3 * x) + 1;
printf("%lu ", x);
if (x == 1) {
break;
}
}
a++;
}
printf(" = %lu\n", a + 2);
return 0;
}
請幫我解決這個問題。
調試器是工具箱中的一個非常重要的工具。使用調試器,您可以逐行執行代碼,同時監控變量及其值。能夠使用調試器是任何想要編程的人都需要的關鍵技能,甚至是作爲兼職愛好者。 –
也請花些時間[閱讀如何提出好問題](http://stackoverflow.com/help/how-to-ask)。你需要告訴我們你給這個程序什麼輸入,它的實際輸出是什麼,以及你期望的輸出。 –
你需要嵌套循環(2個循環) – BLUEPIXY