zoukankan      html  css  js  c++  java
  • 算法训练 阿尔法乘积

    问题描述
      计算一个整数的阿尔法乘积。对于一个整数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 }
  • 相关阅读:
    验证码
    九九乘法表
    P121 6.7 第一题和第二题
    二分搜索法(转载自vanezkw)
    用for循环打印菱形
    用while循环语句计算1!+2!+……20!之和
    数的阶乘之和
    9.29
    doGet与doPost的区别
    JavaScript习题
  • 原文地址:https://www.cnblogs.com/jweie/p/8383616.html
Copyright © 2011-2022 走看看