작성일 :

문제 링크

24783번 - Number Fun

설명

두 숫자를 이용하여 사칙 연산을 수행할 때, 세 번째 숫자를 만들 수 있는지 여부를 판단하는 문제입니다.

각 테스트 케이스마다 두 숫자를 사용하여 사칙 연산을 수행하고, 각 연산의 결과가 세 번째 숫자와 같은지 비교합니다.

어떤 연산이라도 세 번째 숫자와 일치하면 Possible 을, 그렇지 않으면 Impossible 을 출력합니다.


Code

[ C# ]

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
namespace Solution {
  class Program {

    static bool CheckOperations(int a, int b, int c) {
      return (a + b == c || a - b == c || b - a == c || a * b == c ||
             (b != 0 && a / b == c && a % b == 0) ||
             (a != 0 && b / a == c && b % a == 0));
    }

    static void Main(string[] args) {

      int n = int.Parse(Console.ReadLine()!);

      while (n-- > 0) {
        var inputs = Console.ReadLine()!.Split(' ');
        int a = int.Parse(inputs[0]);
        int b = int.Parse(inputs[1]);
        int c = int.Parse(inputs[2]);

        Console.WriteLine(CheckOperations(a, b, c) ? "Possible" : "Impossible");

      }

    }
  }
}



[ C++ ]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <bits/stdc++.h>

using namespace std;

bool checkOperations(int a, int b, int c) {
  return (a + b == c || a - b == c || b - a == c || a * b == c ||
         (b != 0 && a / b == c && a % b == 0) ||
         (a != 0 && b / a == c && b % a == 0));
}

int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);

  int n; cin >> n;

  while (n--) {
    int a, b, c; cin >> a >> b >> c;
    cout << (checkOperations(a, b, c) ? "Possible" : "Impossible") << "\n";
  }

  return 0;
}