阿尔法乘积

分析问题

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;
}

保存 编译 运行