HDOJ1002

简介:
复制代码
#include<stdio.h>
#include<string.h>
int main()
{
char a[1000],b[1000];
int c[1005];
char ch;
int len_a,len_b;
int idx_c,len_c;
int sum;
int i,j;
len_a = 0;
len_b = 0;
scanf("%d",&sum);
//读取数据
for(j=0 ; j<sum ;j++)
{
//读取缓存区数据
memset(c,0,sizeof(int)*1005);
scanf("%s",a);
scanf("%s",b);
len_a = strlen(a)-1; //这里是下标而不是长度。
len_b = strlen(b)-1;
//确定结果的长度
if(len_a >= len_b)
{
idx_c = len_a+1;
len_c = idx_c;
}
else
{
idx_c = len_b+1;
len_c = idx_c;
}
//进行相加的操作
do
{
c[idx_c] = c[idx_c]+a[len_a]-'0'+b[len_b]-'0';
if(c[idx_c] >= 10)
{
c[idx_c] %= 10;
c[idx_c-1] += 1;
}
idx_c--;
len_a--;
len_b--;
}while(len_a!=-1 && len_b!=-1 );

while(len_a != -1)
{
c[idx_c] = c[idx_c]+a[len_a]-'0';
if(c[idx_c] >= 10)//这里要进行进位判断
{
c[idx_c] %= 10;
c[idx_c-1] += 1;
}
idx_c--;
len_a--;
}
while(len_b != -1)
{
c[idx_c] = c[idx_c]+b[len_b]-'0';
if(c[idx_c] >= 10)
{
c[idx_c] %= 10;
c[idx_c-1] += 1;
}
idx_c--;
len_b--;
}

printf("Case %d:\n%s + %s = ",j+1,a,b);
if(c[idx_c] != 0) //看这个位是否有"值"
printf("%d", c[idx_c]);
for(i = idx_c + 1; i <= len_c ; i++)
{
printf("%d", c[i]);
}

if(j == sum-1)
printf("\n");
else
printf("\n\n");
}
return 0;

}
复制代码

 


本文转自ZH奶酪博客园博客,原文链接:http://www.cnblogs.com/CheeseZH/archive/2012/03/14/2397049.html,如需转载请自行联系原作者

相关文章
|
算法
HDOJ 3466 Proud Merchants
HDOJ 3466 Proud Merchants
108 0
HDOJ 3466 Proud Merchants
|
机器学习/深度学习
HDOJ 2074 叠筐
HDOJ 2074 叠筐
123 0
HDOJ 1303 Doubles(简单题)
HDOJ 1303 Doubles(简单题)
105 0
HDOJ 2019 数列有序!
HDOJ 2019 数列有序!
134 0
HDOJ 2057 A + B Again
Problem Description There must be many A + B problems in our HDOJ , now a new one is coming.
904 0
|
测试技术
HDOJ 2046 骨牌铺方格
Problem Description 在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数. 例如n=3时,为2× 3方格,骨牌的铺放方案有三种,如下图: Input 输入数据由多行组成,每行包含一个整数n,表示该测试实例的长方形方格的规格是2×n (0 import java.
713 0
HDOJ 2034 人见人爱A-B
Problem Description 参加过上个月月赛的同学一定还记得其中的一个最简单的题目,就是{A}+{B},那个题目求的是两个集合的并集,今天我们这个A-B求的是两个集合的差,就是做集合的减法运算。
884 0
|
人工智能
HDOJ 2019 数列有序!
Problem Description 有n(n
824 0