描述
输入三个正整数a,b和c,编程计算(a+b)*c的结果。
输入描述
输入三行,每行一个正整数,分别表示a,b和c。(数字长度不超过200)
输出描述
输出(a+b)*c的结果。
样例输入 1
123 1000 15
样例输出 1
16845
#include<iostream>
#include<cstring>
using namespace std;
string add(string a, string b) {
int a1[2001]= {}, b1[2001]= {}, c[2001]= {};
int la = a.length(), lb=b.length();
for(int i=0; i<la; i++) {
a1[la-1-i] = a[i]-'0';
}
for(int i=0; i<lb; i++) {
b1[lb-1-i] = b[i]-'0';
}
int lc=la>lb?la:lb, x=0;
for(int i=0; i<lc; i++) {
c[i]=a1[i]+b1[i]+x;
x = c[i]/10;
c[i] = c[i]%10;
}
if(x>0) {
c[lc]=x;
lc++;
}
string res="";
for(int i=lc-1; i>=0; i--) {
res+=c[i]+'0';
}
return res;
}
string app(string a, string b){
int la = a.size();
int lb = b.size();
int a1[202020]={}, b1[202020]={}, c[101001]={};
for(int i = 0 ; i < la ; i ++){
a1[la-i-1] = a[i]-48;
}
for(int i = 0 ; i < lb ; i++){
b1[lb-i-1] = b[i]-48;
}
int lc = la + lb;
for(int i = 0 ; i < lb ; i++){
for(int j = 0 ; j < la ; j++){
c[i+j]+=a1[j]*b1[i];
}
}
for(int i = 0 ; i < lc ; i++){
c[i+1] += c[i]/10;
c[i] = c[i]%10;
}
while(c[lc] == 0 ){
lc--;
}
string res="";
for(int i=lc; i>=0; i--) {
res+=c[i]+'0';
}
return res;
}
int main() {
string a, b, c;
cin>>a>>b>>c;
string d=add(a,b);
cout<<app(c, d);
return 0;
}
1316





