PAT BB1088 三人行(C++)

PAT甲级目录 | PAT乙级目录

题目描述

B1088 三人行

解题思路

利用两个循环,分别遍历两位数字,然后判断是否满足要求,如果满足则输出结果并退出循环。

易错点

  • 不使用 double 存储的话,除法的时候因为类型不一致,转换容易出错

代码示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <cmath>
using namespace std;
int main(){
int M, X, Y;
double A[3];
cin >> M >> X >> Y;
for(int i = 9; i > 0; i--){
for(int j = 9; j >= 0; j--){
A[0] = i * 10 + j;
A[1] = i + j * 10;
A[2] = 1.0 * abs(A[0] - A[1]) / X;
if(A[1] == A[2] * Y){
cout << A[0];
for(int k = 0; k < 3; k++){
if(A[k] > M) cout << " Cong";
else if(A[k] == M) cout << " Ping";
else cout << " Gai";
}
return 0;
}
}
}
cout << "No Solution" << endl;
return 0;
}