Brian Warehouse

Some birds aren`t meant to be caged, their feathers are just too bright... ...
posts - 40, comments - 16, trackbacks - 0, articles - 1

大数问题学习周(1):POJ Grids 2981 大整数加法

Posted on 2010-08-17 14:21 Brian 阅读(310) 评论(0)  编辑 收藏 引用 所属分类: POJ
#include <iostream>
#include 
<string>
using namespace std;
int main()
{
    
int a[201]={0},b[200]={0},i,j,len,ls1,ls2,f=0// 相加后结果放在a内
    string s;
    
    
for (cin>>s,ls1=s.length(),i=ls1-1,j=0; i>=0; i--)
        a[j
++]=s[i]-'0'//将第一个数逆序放入a数组
    
    
for (cin>>s,ls2=s.length(),i=ls2-1,j=0; i>=0; i--)
        b[j
++]=s[i]-'0'//将第二个数逆序放入b数组

    
for (i=0,len=ls1>ls2?ls1:ls2; i<len; i++// 注意len取二者较大的值
    {
        a[i] 
+= b[i]; //相加结果放入a数组
        if (a[i] >= 10)
        {
            a[i] 
%= 10//进位处理
            a[i+1]++;
        }
    }
    
    
if (a[len]) printf("%d",a[len]); //所谓的前导0
    for (i=len-1; i>=0; i--)
        printf(
"%d",a[i]); //输出主体部分
    return 0;
}

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理