用数组模拟运算的步骤,每一位存入数组内。
#include<iostream>
#include<string.h>
using namespace std;
int main()
{
int a[1000];
int ans = 0;
memset(a,0,sizeof(a));
a[0] = 1;
for(int i=1;i<=1000;i++){
for(int j=0;j<1000;j++){
a[j] = a[j]*2;
}
for(int j=0;j<1000;j++){
if(a[j]>=10){
a[j+1] += (a[j]/10);
a[j] = a[j]%10;
}
}
}
int k = 1;
for(int j=999;j>=0;j--){
if(a[j]==0&&k==1){
continue;
}
if(a[j]!=0){
k = 0;
}
if(!k){
ans+=a[j];
}
}
cout<<ans<<endl;
return 0;
}