蓝桥杯题目 输入两个整数a和b,输出这两个整数的和。a和b都不超过100位。
来源:互联网 发布:win10 uefi 安装Ubuntu 编辑:程序博客网 时间:2024/06/13 07:05
问题描述
输入两个整数a和b,输出这两个整数的和。a和b都不超过100位。
算法描述
由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储。对于这种问题,一般使用数组来处理。
定义一个数组A,A[0]用于存储a的个位,A[1]用于存储a的十位,依此类推。同样可以用一个数组B来存储b。
计算c = a + b的时候,首先将A[0]与B[0]相加,如果有进位产生,则把进位(即和的十位数)存入r,把和的个位数存入C[0],即C[0]等于(A[0]+B[0])%10。然后计算A[1]与B[1]相加,这时还应将低位进上来的值r也加起来,即C[1]应该是A[1]、B[1]和r三个数的和.如果又有进位产生,则仍可将新的进位存入到r中,和的个位存到C[1]中。依此类推,即可求出C的所有位。
最后将C输出即可。
输入格式
输入包括两行,第一行为一个非负整数a,第二行为一个非负整数b。两个整数都不超过100位,两数的最高位都不是0。
输出格式
输出一行,表示a + b的值。
样例输入
20100122201001221234567890
2010012220100122
样例输出
20100122203011233454668012
#include<iostream>#include<string>using namespace std;void add(string a,string b){ int c[102],tail=0,head=0,p=0; int i=a.length()-1; int j=b.length()-1; while(i>=0||j>=0) { if(i>=0&&j>=0) p=(int)a[i]+(int)b[j]+p-'0'-'0'; else if(i>=0&&j<0) p=(int)a[i]+p-'0'; else if(i<0&&j>=0) p=(int)b[j]+p-'0'; c[tail++]=p%10; p=p/10; i--;j--; } if(p!=0) c[tail++]=p; for(int i=tail-1;i>=head;i--) cout<<c[i];}int main(){ string a,b; cin>>a>>b; add(a,b); return 0;}
阅读全文
0 0
- 蓝桥杯题目 输入两个整数a和b,输出这两个整数的和。a和b都不超过100位。
- 指针变量(输入a和b两个整数,按先大后小的顺序输出a和b)
- 例8.2 输入a和b两个整数,按先大后小的顺序输出a和b。
- 输入a和b两个整数,按先大后小的顺序输出a和b
- 输入a和b两个整数,按先大后小的顺序输出a和b
- 输入两个整数a和b(b>=0),输出a^b(即a的b次幂)
- c++实验-编程序,输入两个整数a和b,输出它们的和及差
- 输入a和b两个整数,按先大后小的顺序输出a和b。(用指针变量处理)
- 输入a和b两个整数,按先大后小的顺序输出a和b。(用指针变量处理)
- 编写程序,输入a和b两个整数,按先后大小的顺序输出a和b。
- 给出两个正整数A和B,计算A*B的值。保证A和B的位数不超过500位。
- 给出两个正整数A和B,计算A+B的值。保证A和B的位数不超过500位
- 输入两个整数a和b,及另一正整数c,计算a/b,结果精确到小数点后c位
- 输入两个整数,输出这两个整数的和,积
- 设a和b是两个正整数,a<=b,计算a和b之间约数个数最多的整数
- 两个整数集合A和B,求其交集
- 判断两个64位无符号整数a和b相加是否溢出
- 写一个程序,接收两个整数a和b,并判断a是否能被b整除,输出判断结果。
- 腾讯云首发智能网关流控,公有云进入网络精细管控时代
- JavaScript类型转换之隐式类型转换
- 图解设计模式
- 如何利用 JConsole观察分析Java程序的运行,进行排错调优
- (14) intellij plugins-- ideavim
- 蓝桥杯题目 输入两个整数a和b,输出这两个整数的和。a和b都不超过100位。
- CSS总结——导航栏
- 判断大于0整数是否为2的整数次幂
- 一维表转二维表(mysql)
- VS 调试变量技巧
- 关于mysql 先排序 后分组
- EL获取web开发常用对象
- 决策树学习
- nginx使用负载均衡进行压力测试得到的结论