题目描述
给定两个正整数,计算它们的和。
输入
共两行,每行包含一个整数。
1≤整数长度≤100000
输出
共一行,包含所求的和。
样例输入
12
23
样例输出
35
http://www.chuanqioj.cn/problem.php?id=1078
#include <bits/stdc++.h>
#include <iostream>
#include <string.h>
using namespace std;
const int N = 100010;
int main()
{
//定义两个字符串接受输入的数字
char sa[N], sb[N];
scanf("%s",&sa);
scanf("%s",&sb);
int a[N], b[N],c[N];
int la,lb,i,t=0;
//获取字符串长度
la=strlen(sa);
lb=strlen(sb);
//字符转数字,并倒叙存入 方便加法运算
for(i = la-1; i >= 0; i--)
a[la-i-1]=sa[i]-'0';
for(i = lb-1; i >= 0; i--)
b[lb-i-1]=sb[i]-'0';
//确定最大的位数
int max=la;
if(max<lb)max=lb;
//按位进行加法
for(i = 0; i < max; i++){
t += a[i];
if(i < max) t += b[i];
b[i]=(t % 10);
t /= 10;
}
//如果最后有进位 数组在加一位存进位
if(t!=0)
b[i++]=t;
//倒叙运算的数 再倒叙输出
for(int j=i-1;j>=0;j--)
printf("%d",b[j]);
return 0;
}
和b占麦克老师同一风格
不是说c语言版本吗,这么用的是c++
去掉前导0
没过
Hack:http://ybt.ssoier.cn:8088/problem_show.php?pid=1168
麻烦了