【OpenJudge】c語言_角谷猜想
阿新 • • 發佈:2019-02-14
/* 描述 所謂角谷猜想,是指對於任意一個正整數,如果是奇數,則乘3加1,如果是偶數,則除以2,得到的結果再按照上述規則重複處理, 最終總能夠得到1。如,假定初始整數為5,計算過程分別為16、8、4、2、1。 程式要求輸入一個整數,將經過處理得到1的過程輸出來。 輸入 一個正整數 輸出 從輸入整數到1的步驟,每一步為一行,每一部中描述計算過程,假定輸入為7,則輸出為: 7*3+1=22 22/2=11 11*3+1=34 34/2=17 17*3+1=52 52/2=26 26/2=13 13*3+1=40 40/2=20 20/2=10 10/2=5 5*3+1=16 16/2=8 8/2=4 4/2=2 2/2=1 最後一行輸出"End",如果輸入為1,直接輸出"End" */ #include<stdio.h> void f(int x); int main() { int x = 0; scanf("%d",&x); f(x); return 0; } void f(int x) { int result = 0; if(x==1) printf("End"); else { if(x%2==0&&x>1)//偶 增加了x》1的條件 把x/2改成了x%2 { result = x/2; printf("%d/2=%d\n",x,result); } else if(x%2!=0&&x>1)//增加了條件 而不是單純的 else { result = x*3+1; printf("%d*3+1=%d\n",x,result); } f(result); } }