c++解决大整数加法
问题描述:求两个不超过200为的非负整数的和
输入数据:输入有两行,每行是一个不超过200位的非负整数,没有多于的前导0.
输出要求:输出只一行,即相加后的结果。结果里不能有多于的前导0,即如果结果是342,那么就不能输出0342.
输入样例:
222
333
输出样例:
555
解题思路:int类型数据最多10位,double类型数据最多64位,因此,不能直接利用int或double类型数据相加求解。应考虑用数组(为方便读入数据,采用字符数组),采用列竖式的思路,对位相加,在考虑进位,最终求解。
C++代码如下:
#include
#include
using namespace std; int main() { //定义变量 char x1[200]={'\0'};//两个不超过200位的加数 char x2[200]={'\0'}; int carry[201]={0};//进位 int result[201]={0};//和 int i;//循环变量 //输入 cin>>x1>>x2; //求两char数组长度 int len1=strlen(x1); int len2=strlen(x2); //反序 strrev(x1); strrev(x2); //确定两序列长度的最大值 int lenmax=len1*(len1>=len2)+len2*(len1
=0;i--) cout<
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/177707.html原文链接:https://javaforall.net
