问题
奶牛们在玩一个数字游戏,它们从一个整数开始,比如:6593 。将这个整数中的各位数字全部取出,将他们相乘,得到一个新的整数。
上面的例子就是6×5×9×3=810 ,然后继续做下去, 8×1×0=0 得到了一个个位数 0 。
帮助奶牛完成这个游戏,读入一个数并计算出游戏得到一个个位数的过程。
1.分析问题
- 已知:一个整数
- 未知:得到一个个位数的过程
- 关系:拆位求解
2.定义变量
//二、数据定义
int n,temp;
3.输入数据
//三、数据输入
cin>>n;
4.数据计算
本题需要拆位得到每个数位上的数然后相乘得到一个新的数,所以首先想到短除法。
temp:实际上为n的值,用于短除法的迭代。
result:通过拆位运算后得到的新数。
temp=n;
int result=1;
while(temp>0){
result*=temp%10;
temp/=10;
}
整个拆位环节持续到输入整数n变为个位数为止。
while(n>=10){
//五、输出结果
cout<<result<<" ";
n=result;//条件迭代
}
5.输出结果
#include<iostream>
using namespace std;
int main(){
//一、分析问题
//已知:一个整数
//未知:得到一个个位数的过程
//关系:拆位求解
//三、数据输入
cin>>n;
//四、数据计算
cout<<n<<" ";
while(n>=10){
temp=n;
int result=1;
while(temp>0){
result*=temp%10;
temp/=10;
}
//五、输出结果
cout<<result<<" ";
n=result;
}
return 0;
}