题目:给出a,b,c(3个整数),判断a,b能否通过±*/得到c,ab可以交换位置,可以输出YES,不行输出NO。
示例1
输入:
3 6 2
输出:
YES
示例2
输入:
7 3 2
输出:
NO
分析:首先看a,b通过四则运算,交换位置能得到的所有结果,除法可能出现浮点数,示例2中, 7/3如果保留整数的话就等于2了,事实上并没有这个等式成立;另外,对于除法,还有注意除数不能为0;
#include<iostream>
#include<vector>
using namespace std;
int main() {
int a, b, c;
vector<int>V;
scanf("%d%d%d", &a, &b, &c);
V.push_back(a + b);
V.push_back(a*b);
V.push_back(a - b);
V.push_back(b - a);
if ((b != 0) && (a%b == 0))
V.push_back(a / b);
if ((a != 0) && (b%a == 0))
V.push_back(b / a);
int flag = 0;
for (int i = 0; i < V.size(); i++) {
if (V[i] == c) {
flag = 1;
break;
}
}
printf("%s", flag == 1 ? "YES" : "NO");
return 0;
}