怎么搞高精度的因数啊

P1593 因子和

胖叽猪羊君 @ 2017-08-28 13:40:39

#include<bits/stdc++.h>
#include<math.h>
using namespace std;
int cifang(int p)
{
    int s=1;
    for(int q=1;q<=p;q++)
    s*=10;
    return s;
}
int main()
{
    char a[50000000];
    int r,n=0,b,x[100]={0};
    gets(a);
    int len=strlen(a);                       
    for(int i=len-1;i>=0;i--)
    {
        x[len-1-i]=a[i]-'0';
    }
    for(int j=0;j<=len-1;j++)
    n+=a[j]*cifang(len-1);
    for(int k=1;k<=b;k++)
    {
        for(int l=0;l<=len-1;l++)
        {
            x[l]*=n;
            while(x[r+1]/10)
            {
                r=0;
                x[r+1]+=x[r]/10;
                x[r]%=10;
                r++;
            }
        }
    }
    //其中少了得到a^b的因数和其除以9901的余数,不会了。 
    int h=100;
    while(x[h]==0) h--;
    for(int i=h;i>=0;i--) cout<<x[i];
    return 0;
}

by Juanzhang @ 2018-07-30 15:31:44

数学方法


by John_zyj @ 2018-10-24 12:08:11

可以不用高精度


|