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 1907
这是一道博弈的题,准确说是尼姆博弈,只要判断各项的异或值即可。
35 0
hdoj 2089 不要62
这题数据量相对比较小,可以暴力打表解决。不过我这里用数位dp 刚开始学数位dp,参考了别人的代码。
53 0
HDOJ 2041 超级楼梯
HDOJ 2041 超级楼梯
107 0
HDOJ 2057 A + B Again
HDOJ 2057 A + B Again
106 0
HDOJ 1323 Perfection(简单题)
HDOJ 1323 Perfection(简单题)
122 0
HDOJ 1303 Doubles(简单题)
HDOJ 1303 Doubles(简单题)
101 0
HDOJ 2013 蟠桃记
HDOJ 2013 蟠桃记
95 0
HDOJ 2019 数列有序!
HDOJ 2019 数列有序!
124 0
|
安全
HDOJ 2022 海选女主角
HDOJ 2022 海选女主角
152 0