讨论 / 疯了........到底wa在哪里
wrongnumber 2014-06-02 03:36:55
点我顶贴 收藏 删除
#include<iostream>

#include<cstdio>

#include<cmath>

using namespace std;

long long ans[126]={},l=0;

inline long long max(long long aa,long long bb)

{

if (aa>bb) return aa;

else return bb;

}

void cheng(long long k)

{

long long p;

if (l>125) l=125;

for (long long q=l;q>=0;q--)

{

ans[q]=ans[q]*k;

p=q;

while (ans[p]/10000!=0 && p!=126)

{

ans[p+1]+=ans[p]/10000;

ans[p]=ans[p]%10000;

p++;

}

l=max(p,l);

}

}

void print()

{

ans[0]-=1;

for (int q=125;q>=0;q--)

printf("%04d",ans[q]);

}

int main()

{

int out,n,kk,t,s=1<<30;

ans[0]=1;

scanf("%d",&n);

double ls=log(2)/log(10);

out=double(n*ls)+1;

printf("%d\n",out);

kk=n/30;

for (int q=0;q<kk;q++)

cheng(s);

kk=n%30;

s=2;

for (int q=0;q<kk;q++)

cheng(s);

print();

//system("pause");

return 0;

}

#1 wrongnumber@2014-06-02 04:10:32
回复 删除
3100000的时候是

933193

47432210373278341453903085855109944541111187479212964799827218092518460540128699

61499393269491995510492164544815315267428408092876942389051411840421208525241126

22752638248801607104332816077557721725254482523574840647669173769315155511079742

61086016383271337479746775146402122264513277364587488189828984109555429181173943

51999906115894870256474963244251359207863413890396200880596512573090612453538095

10152788803617445350742437106683050164395963372847736549398669726021688688559105

113484660003632763109375

么 如果是的话我的答案应该没错啊...

查看更多回复
提交回复