描述:
输入4个1~13的整数,不改变顺序,且运算次序为先做第一个运算,再做第二个运算,最后做第三个运算,即(((a ? b) ? c) ? d), 能否得到24。
输入:
输入4个1~13的整数。
输出:
不改变4个整数的顺序,且运算次序为先做第一个运算,再做第二个运算,最后做第三个运算的情况下,能否得到24。
如果能则输出“Yes”,否则输出“No”。
输入样例:
1 5 4 1
输出样例:
Yes
#include<iostream>
using namespace std;
int suan(int a,int b,int dire);//计算函数
int main() { int a, b, c,d;//定义输入 int m, n, h;//m:a与b的运算;n:m与c的运算;h:n与d的运算 int i, j, k;//循环变量 int flag=0; cin >> a >> b >> c >> d;//输入 for(i = 0;i < 3;i++) { m = suan(a, b, i);//m:a与b的运算 for(j = 0;j < 3;j++) { n = suan(m, c, j);//m与c的运算 for(k = 0;k < 3;k++) { h = suan(n, d, k);//n与d的运算 if(h == 24) {//最后的结果为24 flag = 1; } } } } if(flag == 1) { cout << "Yes" << endl; } if(flag == 0) { cout << "No" << endl; } }
int suan(int a,int b,int dire) { if(dire == 0) { return(a + b); } if(dire == 1) { return(a - b); } if(dire == 2) { return(a * b); } }