• 【高精度】乘积根


    问题 H: 【高精度】乘积根

    时间限制: 1 Sec  内存限制: 64 MB
    提交: 11  解决: 4
    [提交] [状态] [讨论版] [命题人:外部导入]

    题目描述

    一个整数的数字乘积根是这样得到的:将此整数中的非零数字相乘,得到的结果再重复上述运算,直到只有一位数为止,此一位数即为原整数的数字乘积根。例如:整数99,99--9×9=81--8×1=8,8即为99的乘积根。

    输入

    一个n位的整数(n≤255)。

    输出

    有若干行,每行显示每次数字相乘之后的结果,最后一行只有一个一位数,即n的乘积根。

    样例输入

    99
    

    样例输出

    81
    8
    
    注意!!!!是非零数字相乘!!
     1 #include <iostream>
     2 #include<string>
     3 #include<cstring>
     4 using namespace std;
     5 int n,a[100005],b[100005],c[100005];
     6 string fun_multi(string s,char t)
     7 {
     8     string ans;
     9     if(s=="0"||t=='0')
    10     {
    11         return "0";
    12     }
    13     memset(c,0,sizeof(c));
    14     int len1=s.size(),w=0,n=t-'0';
    15     for(int i=len1-1;i>=0;i--)  a[len1-i-1]=s[i]-'0';
    16     for(int i=0;i<len1;i++)
    17     {
    18         c[i]=a[i]*n+w;
    19         w=c[i]/10;
    20         c[i]%=10;
    21     }
    22     if(w)   c[len1]=w,len1++;
    23 //    while(!c[len1]) len1--;
    24     for(int i=len1-1;i>=0;i--)
    25         ans+=c[i]+'0';
    26     return ans;
    27 }
    28 string fun(string s)
    29 {
    30     string ans="1",t;
    31     int len=s.size();
    32     for(int i=0;i<len;i++)
    33     {
    34         if(s[i]=='0')   continue;
    35         ans=fun_multi(ans,s[i]);
    36 //        if(ans=="0")
    37 //            break;
    38 //        cout<<ans<<endl;
    39     }
    40     return ans;
    41 }
    42 int main()
    43 {
    44     string s;
    45     cin>>s;
    46 
    47 //    cout<<s<<endl;
    48     int len=s.size();
    49     if(len==1) {
    50         cout<<s<<endl;
    51         return 0;
    52     }
    53     while(len!=1)
    54     {
    55         s=fun(s);
    56         cout<<s<<endl;
    57         len=s.size();
    58     }
    59 //    cout<<s<<endl;
    60     return 0;
    61 }
    View Code
    如有错误,请指正,感谢!
  • 相关阅读:
    博客园精华集汇总
    SQLServer中临时表与表变量的区别分析
    【转】InstantClient安装使用
    博客人生
    【Sniffer】如何查看Sniffer截获的数据内容
    Excel使用基础
    书和耳机到了
    MindManager Pro 9.1.157更改默认字体
    xml spy中显示文件路径
    【LR】Error 27191: "web_image_check" failed 报错解决方法
  • 原文地址:https://www.cnblogs.com/scott527407973/p/9323102.html
Copyright © 2020-2023  润新知