[PAT乙级] Practise 1011 A+B 和 C

PAT (Basic Level) Practice (中文)1011

1011 A+B 和 C

设计函数求一元多项式的导数。(注:*xn*(*n*为整数)的一阶导数为*n*x(n−1)。)

给定区间 [−231,231] 内的 3 个整数 ABC,请判断 A+B 是否大于 C

输入格式:

输入第 1 行给出正整数 T (≤10),是测试用例的个数。随后给出 T 组测试用例,每组占一行,顺序给出 ABC。整数间以空格分隔。

输出格式:

对每组测试用例,在一行中输出 Case #X: true 如果 A+B>C,否则输出 Case #X: false,其中 X 是测试用例的编号(从 1 开始)。

输入样例:

4
1 2 3
2 3 4
2147483647 0 2147483646
0 -2147483648 -2147483647

输出样例:

Case #1: false
Case #2: true
Case #3: true
Case #4: false

思路:

由题意判断即可,注意在C++中int的取值范围为

-2147483648 ~ +2147483647 (4 Bytes) 所以使用long计算。

代码:

#include <iostream>
#include <map>
using namespace std;
int main() {
	int n;
	cin >> n;
	map<int, long> hash;
	long a, b, c;
	for (int i = 0; i < n; i++) {
		cin >> a >> b >> c;
		hash[i] = (a + b > c);
	}
	for (int i = 0; i < n; i++) {
		cout << "Case #" << i + 1 << ": ";
		hash[i] ? cout << "true" : cout << "false";
		if (i != n - 1) cout << endl;
	}
	return 0;
}
posted @ 2020-03-14 10:02  eisuto  阅读(92)  评论(0编辑  收藏  举报