这道题主要是怎么存储1000位的大数,如果按照以前那样的话高精度整数,转化为二进制有点麻烦,所以我看了一下大佬的做法,果然我看不懂。。
```代码
#include<iostream>
#include<string>
#define N 4000
usingnamespacestd;
intconversion(intd[],intdata[],intn,intx,inty){
intsize=0;
for(inti=0;i<n;){
intk=0;
for(intj=i;j<n;j++){
intt=(d[j]+k*x)%y;
d[j]=(d[j]+k*x)/y;
k=t;
}
data[size++]=k;
while(d[i]==0) i++;
}
returnsize;
}
intmain(){
string s;
intd[N],data[N];
while(cin>>s){
for(inti=0;i<s.length();i++)
d[i]=s[i]-'0';
intn=conversion(d,data,s.length(),10,2);
intstart;
for(start=0;data[start]==0;start++);
for(inti=start;i<n;i++)
data[i-start]=data[i];
n=conversion(data,d,n-start,2,10);
for(inti=n-1;i>=0;i--)
cout<<d[i];
cout<<endl;
}
return0
conversion函数看不懂,留着以后看吧。这道题就先跳过。
网友评论