세 개의 숫자 x, y 및 z가 있다고 가정합니다. 리뷰 사이트에는 찬성 투표할 사람 x명, 반대 투표할 사람 y명, 투표할 또 다른 그룹 z명이 있었지만 그들이 찬성할 것인지 반대할 것인지는 알 수 없습니다. 각 사람은 최대 한 번만 투표할 수 있습니다. 반대보다 찬성 투표가 더 많으면 결과는 "+"가 됩니다. 반대 투표 수가 더 많으면 결과는 "-"가 됩니다. 그렇지 않으면 결과는 "0"이 됩니다. z명의 알려지지 않은 사람 때문에 결과가 불확실할 수 있습니다(즉, 가능한 결과가 둘 이상 있음). zpersons가 투표하는 방법에 대한 두 가지 다른 상황이 있는 경우에만 결과가 불확실합니다('?'로 표시됨). 결과를 찾거나 불확실한지 여부를 보고해야 합니다.
따라서 입력이 x =2와 같으면; y =0; z =2이면 출력은 '?' 2개의 찬성표가 있기 때문에 다른 2표가 내리면 0이 되지만 높으면 '+'가 되어 답이 불확실합니다.
단계
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
if x > y + z, then: return "+" otherwise when x + z < y, then: return "-" otherwise when not z is non-zero, then: return "0" Otherwise return "?"
예시
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
#include <bits/stdc++.h> using namespace std; string solve(int x, int y, int z){ if (x > y + z) return "+"; else if (x + z < y) return "-"; else if (!z) return "0"; else return "?"; } int main(){ int x = 2; int y = 0; int z = 2; cout << solve(x, y, z) << endl; }
입력
2, 0, 2
출력
?