这一题我知道是快速幂,但问题是数据2和10一直过不掉,希望神牛能帮我改一下,看有什么错的地方,在此谢过了!!!!!
in2:
3021377
out1:
909526
11913281261611537667213798436049305566736876178255883322723506900154150894025741528852778359314591334030973481399451076356237450255333376076726708226194805056498068234364270236322187114005959098576373866008528267177645658008193588596656071437915287144964841460003215327710769603266764400896690194530668310460272117099806449192863428911515984207543022304118390604844278232572081114474781899183772049596988039233686073203911214513449538158982936063429637539718233655887458210261770225422631973024694271
我的错误答案为
36587794230814928760462282103290764128671647419945
82459139092068449758501692696196852480791751199501
07257509728107308785469256137816857171074554132783
77032371693230279949649808947176602911058349482138
57592809897782094770630516447844808689900617357558
59922979453540790444939496413052336261768771041633
99137466703549578908583659993332852660759452122737
94384619038808446943825089551213821705090962061162
89407205994413242460535459661764117856045535381959
59427342698320095781714685103621144713890461908991
in10:
2976211
out9:
895929
09706254902780580488538638337749488166014345988326027752796117793130264296913904179116439798344610158279684076265265965787901976771930064284522308711662403659439552250198135538452083443036688067014742348499927714966718720802634231050909821692688373949034923784460893758263196576064684482898060471340494758793031585694216573044384886437022298236407514126692346501788965555576712464482545792859950861381768405789873684900520166942689113794869857607317493902398262481988755867710259809742681891351298047
我的错误答案
65226036473004618802672682759216902027641405129330
26541814065029834961376061077186744708712647437940
03173160049850925296705630909192310665003452452887
36888718029437799122954519002720601177494034477396
98637153797130280418895799585712954865090796959110
19647570310884503627832898036634078463575126959375
76263028536999656649910005350815434607245667737971
38430606504995007381030583920567404541014505009769
83996900987257035191119969991980038153340649544424
57484552833759859236254912935669621943591426326527
#include<stdio.h>
main()
{
FILE *fp1,*fp2;
int f[20],a[1000],b[1000],n;
fp1=/*fopen("mason.in","r")*/stdin;
fp2=/*fopen("mason.out","w")*/stdout;
fscanf(fp1,"%d",&n);
int i=0,j,k,l,len;
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(f,0,sizeof(f));
int w=(int)(n*log10(2)+1);
fprintf(fp2,"%d\n",w);
while(n!=1)
{
if(n%2==0) n=n/2;
else {n--;n/=2;f[i]=1;}
i++;
}
len=1,a[0]=2;
for(j=i-1;j>=0;j--)
{
for(k=0;k<=500;k++)
for(l=0;l<=500;l++)
{
if(f[j]==0) b[k+l]+=a[k]*a[l];
else b[k+l]+=a[k]*a[l]*2;
b[k+l+1]+=b[k+l]/10;
b[k+l]=b[k+l]%10;
}
memcpy(a,b,sizeof(b));
memset(b,0,sizeof(b));
}
int p=449;
a[0]-=1;
for(i=499;i>=0;i--)
fprintf(fp2,"%d",a[i]);
return 0;
fclose(fp1);
fclose(fp2);
}