码迷,mamicode.com
首页 > 其他好文 > 详细

NOI中“大整数加法”问题不能AC的解决建议

时间:2018-03-02 01:12:51      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:建议   end   bit   亲测   ++   clu   结果   style   问题   

一、检查输入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;
}

 

NOI中“大整数加法”问题不能AC的解决建议

标签:建议   end   bit   亲测   ++   clu   结果   style   问题   

原文地址:https://www.cnblogs.com/ArtistofCodeMartial/p/8490801.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!