算法训练 阿尔法乘积

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值