题目:
求两个不超过200位的非负整数的和
输入:有两行,每行是一个不超过200位的非负整数,可能有多余的前导0
输出:一行,即相加后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342
【样例输入】
22222222222222222222222
3333333333333333333333
【样例输出】
55555555555555555555555
分析:
一、我们为什么不能对大数直接进行加、减、乘、除运算 ?
答案:因为数据太大,没有数据类型可以存储
如何使用程序输出int、unsigned int 型的最大值、最小值?
参考代码:
#include <iostream>
using namespace std;
int main()
{
//int 整型 -2147483648 ~ 2147483647
//unsigned int 无符号整型 0 ~ 4294967295
cout<<INT_MAX<<" "<<INT_MIN<<endl;
cout<<UINT_MAX<<endl;
return 0;
}
二、做大数的加法运算需要考虑的问题:
1)怎么存储? 用字符数组
2)进位怎么处理? int c = 0; c = (a+b)/10 如果c ==1 该进位了,c==0, 不用进位
3)进位后本位怎么处理? int d = 0; d = (a+b)%10