Posted on 2010-08-17 14:21
Brian 阅读(336)
评论(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;
}