Description
遊戲從一個整數S開始,隻要它的位數多于1,就計算它各位的乘積,并且不斷重複這個過程。比如:我們從95開始,9 × 5 = 45,45不是1位數,繼續4 × 5 = 20.繼續2 × 0 = 0.至此隻有1位數,結束。
再比如:如果從396開始
3 × 9 × 6 = 162
1 × 6 × 2 = 12
1 × 2 = 2
最後得到2。
Input
每行開始1個整數,表示起始值。最後以0結束。
Output
遊戲從開始到結束的序列,從起始值開始。
Sample Input
95
396
28
4
40
0
Sample Output
95 45 20 0
396 162 12 2
28 16 6
4
40 0
解題思路:個人覺得是一道很好的題,主要考察對循環的了解和使用,很有意思
1 #include<stdio.h>
2 int main()
3 {
4 int n,i,ans,a,sum;
5 while(scanf("%d",&n)!=EOF)
6 {
7 if(n==0)
8 break;
9 sum=1;
10 while(n>=10)
11 {
12
13 printf("%d ",n);
14 while(1)///求每一次變化後的得到的數
15 {
16 a=n%10;
17 n=n/10;
18 sum=sum*a;///一位一位的拆數
19 if(n==0)
20 {
21 n=sum;
22 sum=1;
23 break;
24 }
25 }
26 }
27 printf("%d\n",n);
28 }
29 return 0;
30 }