之前看了看,CSDN的C++高精度求平均数的文章并不多且并不实用,这里就把题和AC代码奉上
时间:1s 空间:256M
题目描述:
给定n个整数,求这n个数的平均数 (向下取整)
输入格式:
第一行输入一个整数n
接下来n行每行一个整数a
输出格式:
按题目描述输出
样例输入1:
4
213
2144332
21332
214324322
样例输出1:
54122549
约定:
n<=10,1<=a<=10^100
#include<bits/stdc++.h>
using namespace std;
string s;
int n,x;
int a[1005][10005],c[1005],d[1005];
int lenlen[3];
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>s;
lenlen[2]=s.size();
for(int j=0;j<lenlen[2];j++){
a[lenlen[2]-j][i]=s[j]-'0';
}
lenlen[1]=max(lenlen[1],lenlen[2])+1;
for(int j=1;j<=lenlen[1];j++){
c[j]+=a[j][i];
}
for(int j=1;j<=lenlen[1];j++){
c[j+1]+=c[j]/10;
c[j]%=10;
}
}
while(c[lenlen[1]]==0&&lenlen[1]>1){
lenlen[1]--;
}
for(int i=1;i<=lenlen[1];i++){
d[i]=(x*10+c[lenlen[1]-i+1])/n;
x=(x*10+c[lenlen[1]-i+1])%n;
}
lenlen[2]=1;
while(d[lenlen[2]]==0&&lenlen[1]>lenlen[2]){
lenlen[2]++;
}
for(int i=lenlen[2];i<=lenlen[1];i++) cout<<d[i];
return 0;
}