【问题描述】
输入两个十进制正整数 M 和 N,求它们的和,结果用十进制表示。注意,M 和 N 可能非常大。 【输入描述】
第一行包含一个正整数 M(1≤M<10100); 第二行包含一个正整数 N(1≤N<10100)。
【输出描述】
输出一个正整数,表示计算结果。
【输入样例】
769584695655486596597654685486745
452537865655768856564568658
【输出样例】
769585148193352252366511250055403
【解析】
本题关键点:以字符串输 入,按照列竖式方式求解,可使用函数reverse反转字符串,并转换成整数进行相加。需要注意进位情况的处理。代码如下。
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int calculate(string x,string y){
int ans,len;
int result[y.length()+1];
result[0]=0;
for(int i=0;i<x.length();i++){
x[i]=x[i]-'0';
y[i]=y[i]-'0';
if(result[i]==1){
ans = x[i]+y[i]+result[i];
}else{
ans = x[i]+y[i];
}
if(ans>=10){
result[i]=ans%10;
result[i+1]=1;
}else{
result[i]= ans;
result[i+1] = 0;
}
}
y[x.length()]=y[x.length()]-'0';
result[x.length()] += y[x.length()];
for(int j=x.len

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



