您的位置:首页 > 产品设计 > UI/UE

HDU 1047 多个大数相加 Integer Inquiry

2016-01-24 17:34 543 查看

题目:求多个大数的和

把两个大数的求和写成函数,每次输入都用一次,解决!

直接上代码

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
char sa[1000],sb[1000];
int a[1000],b[1000],c[1000];
void add(char sa[1000],char sb[1000]){
int lena=strlen(sa);
int lenb=strlen(sb);
int lenc=(lena>lenb?lena:lenb);
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));

for(int j=0;j<lena;j++){
a[lena-1-j]=sa[j]-'0';
}
for(int j=0;j<lenb;j++){
b[lenb-1-j]=sb[j]-'0';
}
memset(c,0,sizeof(c));
for (int ii=0; ii<lenc; ii++) {
c[ii]=a[ii]+b[ii]+c[ii];
if (c[ii]>=10) {
c[ii+1]=1;
c[ii]-=10;
}
}
if (c[lenc]>0) lenc++;

for (int ii=lenc-1; ii>=0; ii--){
sb[ii]=c[lenc-1-ii]+'0';
}
sb[lenc]='\0';

}
int main() {
int n;
scanf("%d",&n);
while(n--) {
strcpy(sb,"0");
while(scanf("%s",sa),strcmp(sa,"0")) {
add(sa,sb);
}
puts(sb);
//putchar('\n');

if(n)
putchar('\n');
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: