HDOJ1002

#include <iostream>
#include<stdio.h>
using namespace std;
int main()
{
int T, count_T;
char a[1001], b[1001], ans[1002];
cin >> T;
for(count_T=1; count_T <= T; count_T++) {
cin >> a >> b;

int la=strlen(a)-1, lb=strlen(b)-1, sign=0, i;
for(i=0;la>=0 && lb>=0; la--,lb--,i++) {
sign += a[la] + b[lb] - '0' - '0';
ans[i] = sign % 10;
sign /= 10;
}
for(; la>=0; la--, i++) {
sign += a[la] - '0';
ans[i] = sign % 10;
sign /= 10;
}
for(; lb>=0; lb--, i++) {
sign += b[lb] - '0';
ans[i] = sign % 10;
sign /= 10;
}
if(sign) {
ans[i] = sign;
i++;
}
if(count_T!=1)
printf("\n") ;
printf("Case %d:\n",count_T) ;
printf("%s + %s = ",a,b);
// 正向输入反向输出!!!不必考虑怎么在头位置加进位的问题。
for(i--; i>=0; i--) {
cout << (char)(ans[i] + '0');
}
cout << endl ;
}
return(0);
}

 

快疯了

 

#include <stdio.h>

#include<string.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
int j,count;
char a[1001], b[1001], ans[1002];
scanf("%d", &count);
while(j++<count)
{
scanf("%s%s",a, b);

if(j== 1)
printf("Case %d:\n", j);
else
printf("\nCase %d:\n", j);

int la=strlen(a)-1,lb=strlen(b)-1,sign=0,i;
for(i=0;la>=0 && lb>=0; la--,lb--,i++) {
sign += a[la] + b[lb] - '0' - '0';
ans[i] = sign % 10;
sign /= 10;
}
for(; la>=0; la--, i++) {
sign += a[la] - '0';
ans[i] = sign % 10;
sign /= 10;
}
for(; lb>=0; lb--, i++) {
sign += b[lb] - '0';
ans[i] = sign % 10;
sign /= 10;
}
if(sign) {
ans[i] = sign;
i++;
}
// 正向输入反向输出!!!不必考虑怎么在头位置加进位的问题。
printf("%s + %s = ", a, b);
for(i--; i>=0; i--) {
printf("%d", ans[i]);
}


}
return 0;
}

posted @ 2014-03-16 21:22  FREE小宝  阅读(209)  评论(0)    收藏  举报