NOI中“大整數相加”問題不能AC的解決建議
阿新 • • 發佈:2019-01-10
一、檢查輸入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]; 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; }