PAT L1-025. 正整数A+B
题目链接
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
int
isInt(char a[1005]) {
int i, len = strlen(a);
for( i = 0; i < len; i++ ) {
if( !(a[i] >= '0' && a[i] <= '9') ) {
return 0;
}
}
return 1;
}
int
f(char a[1005]) {
int i, len = strlen(a), ans = 0;
for( i = len - 1; i >= 0; i-- ) {
ans += (a[i] - '0') * pow(10, len - i - 1);
}
if( !(ans >= 1 && ans <= 1000) ) {
return 0;
}
return 1;
}
int
main() {
char a[1005], b[1005];
scanf("%s", a);
getchar();
gets(b);
if( isInt(a) == 1 && isInt(b) == 1 && f(a) == 1 && f(b) == 1 ) {
printf("%s + %s = %d\n", a, b, atoi(a) + atoi(b));
}
else if( (isInt(a) == 0 || f(a) == 0) && (isInt(b) == 0 || f(b) == 0) ) {
printf("? + ? = ?\n");
}
else if( isInt(a) == 1 && f(a) == 1 ) {
printf("%s + ? = ?\n", a);
}
else if( isInt(b) == 1 && f(b) == 1 ) {
printf("? + %s = ?\n", b);
}
return 0;
}