题解
2024-01-24 14:56:16
发布于:广东
41阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int main()
{
string a,b;
cin>>a>>b;
int az=a.size();
int bz=b.size();
int abz=max(az,bz)+1;
int ar[abz];
ar[abz-1]=0;
for(int i=0;i<abz;i++)
{
int aa=0,bb=0;
if(i<az)
aa=a[az-i-1] - '0';
if(i<bz)
bb=b[bz-i-1] - '0';
ar[i]=aa + bb;
}
for(int i=0;i<abz;i++)
{
if(ar[i]>=10)
{
ar[i+1]+=ar[i]/10;
ar[i]%=10;
}
}
if(ar[abz-1]==0) {
abz--;
}
for(int i=abz-1;i>=0;i--){
cout << ar[i];
}
return 0;
}
全部评论 1
#include <iostream>
using namespace std;
string s1,s2; //读入的两个字符串
//a数组存入字符串s1, b数组存入字符串s2, c数组存入计算后的结果int a[10000],b[10000],c[10000]; //数据不够再扩容
int i,len;
int main()
{
//1.采用string读入高精度整数cin >> s1 >> s2; //2.将两个高精度整数逆序存入两个整 数数组中 for (i = 0; i < s1.size();i++) { a[s1.size() -i -1] = s1[i] - '0'; } for (i = 0; i < s2.size();i++) { b[s2.size() -i -1] = s2[i] - '0'; } //3.从左向右,逐位求和,存入c数组中 len = s1.size(); if(s2.size() > len) { len = s2.size(); } for (i = 0;i < len;i++) { c[i] = a[i] + b[i]; } //从左向右,逐位进位 for (i = 0;i < len;i++) { if (c[i] >= 10) { c[i+1] = c[i+1] + c[i]/10; c[i] = c[i] % 10; } } //最后一位不是0的话,就需要进位即 len+1 if (c[len] != 0) len ++; //4.逆序输出结果 for (i=len-1;i>=0;i--) { cout << c[i]; } return 0;
}
2024-07-12 来自 福建
0
有帮助,赞一个