對任意正整數,奇數乘 3 加 1,偶數除 2,循環至 1。輸出從輸入值到 1 的完整序列。
while(1) {
if(a%2==0) { a/=2; printf("%d\n",a); }
if(a%2!=0) { a=a*3+1; printf("%d\n",a); }
if(a==1) break;
}當 a 為偶數執行完 a/=2 後,若結果為奇數,同一次循環會再進入奇數分支,導致邏輯錯誤。
while (1) {
if (a == 1) break;
if (a % 2 == 0) {
a /= 2;
printf("%d\n", a);
continue;
}
a = a * 3 + 1;
printf("%d\n", a);
}continue 或 else if。