【MX-J2】梦熊周赛 · 入门组 2(同步赛)T

· · 题解

一道简单的水题!(蒟蒻做法勿喷)

原题地址

先来看题意: 给三个数a b c,先对a,b运算,再把结果对c进行运算,求有没有一种计算方法使得结果为d

可以直接使用枚举

外层循环枚举a与b运算的符号,内层循环枚举结果与c运算的符号,最后判断如果能够得到答案d输出Yes,否则输出No

下面是AC代码(不喜勿喷)

#include<bits/stdc++.h>
using namespace std;
char fuh[4] = {'+','-','*','/'};
int js(int a,int b,char x)
{
    if(x == '+') return a + b;
    else if(x == '-') return a - b;
    else if(x == '*') return a * b;
    else return a / b;
}
int main()
{
    int a,b,c;
    cin >> a >> b >> c;
    int d;
    cin >> d;
    for(int i = 0;i < 4;i++)
    {
        char x = fuh[i];
        int m = js(a,b,x);
        for(int j = 0;j < 4;j++)
        {
            char y = fuh[j];
            int n = js(m,c,y);
            if(n == d)
            {
                cout << "Yes";
                return 0;
            }
        }
    }
    cout << "No";
    return 0;
}

感谢各位大佬们的观看,不吝赐赞!!!