算法训练 阿尔法乘积

问题描述
  计算一个整数的阿尔法乘积。对于一个整数x来说,它的阿尔法乘积是这样来计算的:如果x是一个个位数,那么它的阿尔法乘积就是它本身;否则的话,x的阿尔法乘积就等于它的各位非0的数字相乘所得到的那个整数的阿尔法乘积。例如:4018224312的阿尔法乘积等于8,它是按照以下的步骤来计算的:
  4018224312 → 4*1*8*2*2*4*3*1*2 → 3072 → 3*7*2 → 42 → 4*2 → 8
  编写一个程序,输入一个正整数(该整数不会超过6,000,000),输出它的阿尔法乘积。
  输入格式:输入只有一行,即一个正整数。
  输出格式:输出相应的阿尔法乘积。
  输入输出样例
样例输入
4018224312
样例输出
8
 1 #include <iostream>
 2 #include <string>
 3 using namespace std;
 4 int main()
 5 {
 6     string a;
 7     int b[10];
 8     long long sum=1;
 9     long long c;
10     int k;
11     int len;
12     int j;
13     cin>>a;
14     len=a.length();
15       for(int i=a.length()-1;i>=0;i--)
16     {
17               b[i]=a[i]-'0';
18           //    cout<<b[i];
19     }
20 //    cout<<endl;
21    while(len!=1)
22    {
23        for(j=0;j<len;j++)
24       {
25         if(b[j]!=0)
26         sum=sum*b[j];
27       }    
28     // cout<<"sum"<<sum<<endl;
29       c=sum;
30       sum=1;
31       k=0;
32        while(c)
33        {
34                
35                b[k]=c%10;
36                c=c/10;
37                k++;
38                len=k;
39        }  
40       //cout<<"len   "<<len<<endl;
41       
42    }    
43     cout<<b[0];//<<b[1]<<b[2];
44     return 0;
45 }
原文地址:https://www.cnblogs.com/jweie/p/8383616.html