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
PythonMaker 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