2、牛牛想对一个数做若干次变换,直到这个数只剩下一位数字。 变换的规则是:将这个数变成 所有位数上的数字的乘积。比如285经过一次变换后转化成2*8*5=80. 问题是,要做多少次变换,使得这个数变成个位

 牛牛想对一个数做若干次变换,直到这个数只剩下一位数字。
变换的规则是:将这个数变成 所有位数上的数字的乘积。比如285经过一次变换后转化成2*8*5=80.
问题是,要做多少次变换,使得这个数变成个位数。 

输入描述:
输入一个整数。小于等于2,000,000,000。

输出描述:

输出一个整数,表示变换次数。

 输入例子:

285

 输出例子:

2

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3  int main()
 4  {
 5      int n;
 6      scanf("%d",&n);
 7      if(n==0)//n是0,输出 0次 
 8      printf("0");
 9      else
10      {
11          int result = 1;
12          int count = 0;
13   
14          while(n/10)//n是个位数,输出0次 
15          {
16              while(n)
17              {
18                  result *= n%10;
19                  n = n/10;
20              }
21              printf("%d
",result);//输出每个数字相乘的积,作为新的n,本题中不需要此行的输出 
22              count++;
23              n = result;
24              result = 1;
25          }
26   
27          printf("%d",count);
28      }
29      return 0;
30  }

 

原文地址:https://www.cnblogs.com/olivegyr/p/6978244.html