算法训练 阿尔法乘积

Posted 原来你还在这里e

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法训练 阿尔法乘积相关的知识,希望对你有一定的参考价值。

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

 

以上是关于算法训练 阿尔法乘积的主要内容,如果未能解决你的问题,请参考以下文章

算法训练——阿尔法乘积

阿尔法乘积

算法训练——最小乘积——基本型

蓝桥杯——算法训练之乘积最大

模型压缩:剪枝算法

代码随想录算法训练营第四十一天 | 343.整数拆分96.不同的二叉搜索树