问题描述
计算一个整数的阿尔法乘积。对于一个整数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 → 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 }