對任意一個自然數N0,先將其各位數字相加求和,再將其和乘以3后加上1,變成一個新自然數N1;然后對N1重復這種操作,可以產生新自然數N2;……多次重復這種操作,運算結果最終會得到一個固定不變的數Nk,就像掉入一個數字“陷阱”。
本題要求對輸入的自然數,給出其掉入“陷阱”的過程。
輸入格式:
在一行內給出一個自然數N0(N0<30000)。
輸出格式:
對於輸入的N0,逐行輸出其掉入陷阱的步驟。第i行描述N掉入陷阱的第i步,格式為: i:Ni (i≥1)。當某一步得到的自然數結果Nk(k≥1)與上一步Nk−1相同時,停止輸出。
輸入樣例:
5
輸出樣例:
1:16 2:22 3:13 4:13
1 #include<stdio.h> 2 int cmd(int n) 3 { 4 int m=0,temp; 5 while(n>0) 6 { 7 m=m+n%10; 8 n=n/10; 9 } 10 temp=3*m+1; 11 return temp; 12 } 13 int main() 14 { 15 int n,t,count=1; 16 scanf("%d",&n); 17 while(1) 18 { 19 t=cmd(n); 20 printf("%d:%d\n",count,t); 21 count++; 22 if(n==t) 23 break; 24 n=t; 25 } 26 return 0; 27 }