分析问题
1 需要不定数位的拆位过程,考虑使用循环实现
2 拆位运算后,如果阿尔法乘积不是个位数,还需要继续拆位,所以需要在外层再加上一层循环
3 找到边界条件 当数位乘积为个数时,停止
4 注意特殊的值 ,如果数位为0 跳过
建立模型
输入一个数字n // n 是number 的缩写
循环判断阿尔法值是否为个位数,如果不是(大于9)
将数字拆位,并将每个不为零的数位相乘
输出最后的阿尔法乘积
编写代码
#include <bits/stdc++.h>
using namespace std;
int main(){
int n,a=1;//n是number的缩写 a是alpha的缩写
cin>>n;
//如果是个位就不断的循环
while(n>9){
//拆位
a=1;//归1,用于对新的拆位进行计算
while(n){//当n不等于0,执行循环
if(n%10!=0){//如果最后一位不是0,则乘以它
a = a*(n%10);
}
n=n/10;//去掉n的最后一位
}
n=a;//将得到的阿尔法数交给n
}
cout<<n;
return 0;
}