hdu1002 大整数加法
2017-09-06 13:52
288 查看
有很多小细节需要注意:
1.去除前导零
2.翻转时的char与int变换
#include<iostream>
#include<cstring>
#include<string>
#define maxn 1002
using namespace std;
char aa[maxn],bb[maxn];
int sum[maxn],a[maxn],b[maxn];
int main(){
int n;
scanf("%d",&n);
for(int k = 0;k<n;k++){
scanf("%s%s",&aa,&bb);
printf("Case %d:\n%s + %s = ",k+1,aa,bb);
int len1 = strlen(aa),len2 = strlen(bb);
int maxl = len1<len2?len2:len1;
for(int i = 0;i<maxl;i++){
a[i] = len1-i-1>=0?aa[len1-i-1]-'0':0;
b[i] = len2-i-1>=0?bb[len2-i-1]-'0':0;
}
int ca = 0;
for(int i = 0;i<maxl;i++){
sum[i] = ca + a[i]+b[i];
ca = sum[i]/10;
sum[i]%= 10;
}
int len = maxl;
if(ca){
sum[len++] = ca%10;
ca = ca/10;
}
//去除前导0
maxl = 0;
for(int i = len-1;i>=0;i--){
if(sum[i]){
maxl = i+1;
break;
}
}
if(!maxl){
printf("0\n");
}
else{
for(int i = maxl-1;i>=0;i--){
printf("%d",sum[i]);
}
printf("\n");
}
//case间空格
if(k!=n-1){
printf("\n");
}
}
return 0;
}
1.去除前导零
2.翻转时的char与int变换
#include<iostream>
#include<cstring>
#include<string>
#define maxn 1002
using namespace std;
char aa[maxn],bb[maxn];
int sum[maxn],a[maxn],b[maxn];
int main(){
int n;
scanf("%d",&n);
for(int k = 0;k<n;k++){
scanf("%s%s",&aa,&bb);
printf("Case %d:\n%s + %s = ",k+1,aa,bb);
int len1 = strlen(aa),len2 = strlen(bb);
int maxl = len1<len2?len2:len1;
for(int i = 0;i<maxl;i++){
a[i] = len1-i-1>=0?aa[len1-i-1]-'0':0;
b[i] = len2-i-1>=0?bb[len2-i-1]-'0':0;
}
int ca = 0;
for(int i = 0;i<maxl;i++){
sum[i] = ca + a[i]+b[i];
ca = sum[i]/10;
sum[i]%= 10;
}
int len = maxl;
if(ca){
sum[len++] = ca%10;
ca = ca/10;
}
//去除前导0
maxl = 0;
for(int i = len-1;i>=0;i--){
if(sum[i]){
maxl = i+1;
break;
}
}
if(!maxl){
printf("0\n");
}
else{
for(int i = maxl-1;i>=0;i--){
printf("%d",sum[i]);
}
printf("\n");
}
//case间空格
if(k!=n-1){
printf("\n");
}
}
return 0;
}
相关文章推荐
- hdu1002 大大大整数加法 A + B Problem II
- hdu 1002 大整数加法模板
- Hdu 1002 A + B Problem II(大整数加法)
- HDU 1002 A + B Problem II 大整数加法
- hdu 1002 A + B Problem II 大整数相加
- hdu 1002之大数加法
- hdu 1002 高精度加法
- hdu 1002 A + B Problem II(大正整数相加)
- Hdu-1002(高精度加法_java)
- (解题报告)HDU1002---大数加法
- 大整数加法 1002 A + B Problem II
- HDU 1002 A + B Problem II (Java 之大整数)
- hdu 1250 简单大整数加法
- hdu1002(简单大数加法)
- hdu 1250 简单大整数加法
- hdu--1002--大数加法
- 杭电1002大整数加法
- hdu 1002大数加法
- HDU 1002 A + B Problem II(大数加法,C,Java两个版本)
- HDU 1002高精度加法的栈实现_简单易懂