题目:
有n个人,每个人都拥有一个喜悦值,接下来,任意两个人之间会进行一次交流,任意两个人交流所获得的贡献为两个人的喜悦值的和,求任意两个人交流所获得的贡献之和
输入格式:
第一行一个整数n
接下来n行,每行一个整数a,表示第i个人的喜悦值
输出格式:
按题目描述输出
样例输入1:
3
2
3
4
样例输出1:
18
约定:
n<=1000
1<=a<=10^100
这是我的代码是方法那里搞错了吗
#include<bits/stdc++.h>
using namespace std;
string str;
void q(string a,string b){
int a1[1001]={},b1[1001]={},c1[1001]={};
int lena=a.size(),lenb=b.size();
int len=max(lena,lenb);
for(int i=0;i<lena;i++){
a1[i]=a[lena-i-1]-'0';
}
for(int i=0;i<lenb;i++){
b1[i]=b[lenb-i-1]-'0';
}
int x=0;
for(int i=0;i<=len;i++){
c1[i]=a1[i]+b1[i]+x;
if(c1[i]>=10){
c1[i]-=10;
x=1;
}else{
x=0;
}
}
if(c1[len]==0) len--;
for(int i=len;i>=0;i--){
str[len-i]=c1[i]+48;
}
}
int main(){
int n;
string s;
cin>>n;
for(int i=0;i<n;i++){
cin>>s;
q(str,s);
}
cout<<str;
return 0;
}
反正莫输出,help me!