7-31 掉入陷阱的數字 (15 分)
阿新 • • 發佈:2018-12-25
對任意一個自然數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
思路:將數字分解 相加 接著乘以3加1 不斷迴圈知道最後的值不再變化
#include <stdio.h> int main() { int x; scanf("%d",&x); int s = 0; int i=0; int d; int D; int t; while(x != t){ t = x; do { d = x%10; s += d; x /= 10; } while(x>0); D = 3*s+1; s = 0; i++; printf("%d:%d\n",i,D); x = D; } return 0; }