牛牛想对一个数做若干次变换,直到这个数只剩下一位数字。
变换的规则是:将这个数变成 所有位数上的数字的乘积。比如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 }