HDU 1047 [Integer Inquiry] 高精度 格式

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1047

题目大意:T组数据。每组给出n个大数,输出他们的和

关键思想:高精度,格式控制

代码如下:

#include <iostream>
#include <memory.h>
using namespace std;
int a[102][110];
int ans[110];
int cnt=0;
bool flag;//处理前导零 

void solve(){
	int sum,c=0;
	for(int i=0;i<=110;i++){//计算每一列,每一位 
		sum=0;
		for(int j=0;j<=cnt;j++)//计算每个数的这一位 
			sum+=a[j][i];
		sum+=c;
		c=sum/10;
		ans[i]=sum%10;
	}
	return ;
}

void print(){
	flag=true;
	for(int i=109;i>=0;i--){
		if(flag){
			if(ans[i]!=0 ){
			flag=false;
			cout<<ans[i];
			}
		}
		else cout<<ans[i];
	}
	if(flag)cout<<0;
	return;
} 
int main(){
	int T;
	cin>>T;
	while(T--){
		flag=true;
		memset(a,0,sizeof(a));
		memset(ans,0,sizeof(ans)); 
		string temp;
		while(cin>>temp&&temp!="0"){
			for(int i=temp.size()-1;i>=0;i--){
				a[cnt][temp.size()-1-i]=temp[i]-'0';
			}
			cnt++;
		}
		solve();
		print();
		if(T!=0)cout<<endl<<endl;//格式略坑 
		else cout<<endl;
	}
	return 0;
} 

  

posted @ 2017-02-19 17:28  哇咔咔咔  阅读(174)  评论(0编辑  收藏  举报