作者:letianJOE
题目链接
题目描述
输入两个整数 a,b,输出它们的和(∣a∣,∣b∣≤10^9)
输入格式
两个以空格分开的整数
输出格式
一个整数
输入输出样例
输入 #1
20 30
输出#1
50
【洛谷P1001]这一道题是很经典的一道入门题,也是许多测评网站的试机题目。可以说是很多人的回忆。
用顺序结构做,一道基础题。
洛谷也给出了c/c++的程序范例。
思路很简单,就是输入a和b。
然后再把它们相加,最后输出答案。
以下是 AC code
#include<bits/stdc++.h> //万能头文件
using namespace std;
int main()
{
int a,b; //a是第一个加数,b是第二个加数
cin>>a>>b; //输入a和b
cout<<a+b<<endl; //输出a+b的值
return 0; //养成好习惯
}
当然,用高精度做也不会错。
#include<bits/stdc++.h>
using namespace std;
char a1[1000],b1[1000];
int a[1000],b[1000],c[1000],x;
int main()
{
cin>>a1>>b1;//以字符串形式读入数a和数b
int lena=strlen(a1),lenb=strlen(b1);//获取数a、b的长度
for(int i=0;i<lena;i++)
a[lena-i-1]=int(a1[i]-48);//整型数组a用于存放转化后的数a
for(int i=0;i<lenb;i++)
b[lenb-i-1]=int(b1[i]-48);//倒序输入便于进位
int m=max(lena,lenb);
for(int i=0;i<m;i++)
{
c[i] = a[i]+b[i]+x; //第i位相加并加上次的进位
x = c[i]/10; //向高位进位
c[i] %= 10; //存储第i位的值
}
m++;
while(c[m]==0) m--; //删除前导0
for(int i=m;i>=0;i--)
cout<<c[i];
cout<<endl; //养成好习惯
return 0;
}
任何一个伟大的思想,都有一个微不足道的开始。让我们就从这一题开始,向着大犇的路进发。
本人是个蒟蒻,学艺不精。如有错误或建议,请在评论区指出。