赞
踩
之前看了看,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;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。