NOI中“大整数相加”问题不能AC的解决建议
一、检查输入000和00相加是否出结果。
二、数组不要开小了,亲测256的数组不够。推荐1024。
附录AC程序:
如果不能AC请将256改为1024,255改为1023。
#include <bits/stdc++.h>
using namespace std;
int main(int argc, char *argv[])
{
int a[256],b[256];//这是不够的,改为1024就可以AC了
char ch;
int i=255,m,n,num;
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
while((ch=getchar())!='\n'){//输入
a[i]=ch-48;
i--;//此时i为数的实际个数
}
m=i+1;
i=255;
while((ch=getchar())!='\n'){
b[i]=ch-48;
i--;
}
n=i+1;
num=m;//重序+清零
i=1;
while(i<num&&num<256){
a[i]=a[num];
a[num]=0;
i++;
num++;
}
num=n;
i=1;
while(i<n&&num<256){
b[i]=b[num];
b[num]=0;
i++;
num++;
}
i=1;
while(i<256){
a[i]+=b[i];
if(a[i]>9){
a[i]-=10;
a[i+1]+=1;
i++;
}else
i++;
}
int flag=0;
for(int k=255;k>0;k--){
if(a[k]&&!flag)
flag=1;
if(flag)
cout<<a[k];
}
if(!flag)
cout<<0;
cout<<endl;
return 0;
} 相关推荐
哈嘿Blog 2020-10-26
明月清风精进不止 2020-07-05
xirongxudlut 2020-06-28
kkpiece 2020-06-16
qscool 2020-06-12
CloudXli 2020-06-11
vs00ASPNET 2020-06-09
Dimples 2020-06-08
kuoying 2020-06-07
JJandYY 2020-05-31
Wyt00 2020-05-30
liuyh 2020-04-03
CloudXli 2020-05-11
世樹 2020-05-11
bizercsdn 2020-05-10
joyjoy0 2020-05-09