PAT L1-025. 正整数A+B
2018-03-10 21:05
316 查看
PAT L1-025. 正整数A+B
题目链接/* (1)B有可能包含空格 (2)A, B可能是超出范围[1, 1000]的数 */ #include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h> int // 检查a[]是否全是数字 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 // 判断a是否在区间[1, 1000] f(char a[1005]) { int i, len = strlen(a), ans = 0; // 可看成是一个低效的atoi()函数 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); // 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; }
相关文章推荐
- Java - PAT - L1-025. 正整数A+B (天梯赛决赛题目)
- PAT L1 025 正整数A+B
- PAT-练习集-L1-025. 正整数A+B
- PAT -天梯赛 L1-025 正整数A+B
- L1-025. 正整数A+B - PAT - assign函数的用法
- L1-025. 正整数A+B-PAT团体程序设计天梯赛GPLT
- PAT团体程序设计天梯赛L1-025 正整数A+B
- PAT-L1-025. 正整数A+B
- PAT 天梯赛 L1-025. 正整数A+B 【字符串处理】
- pat L1-025. 正整数A+B
- [PAT][GPLT][CCCC]L1-025.正整数A+B
- PAT L1-025. 正整数A+B
- PAT-团体程序设计天梯赛-练习集-L1-025. 正整数A+B
- L1-025. 正整数A+B-PAT团体程序设计天梯赛GPLT
- L1-025. 正整数A+B
- 天梯赛 L1-025. 正整数A+B
- L1-025. 正整数A+B
- L1-025. 正整数A+B
- L1-025. 正整数A+B
- L1-025. 正整数A+B java