天天看點

數字小遊戲

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 }      
上一篇: 記憶體
下一篇: 記憶體