Giả sử chúng ta có hai số a và b. Amal và Bimal đang chơi một trò chơi. Đầu tiên mỗi người trong số họ viết một số nguyên từ 1 đến 6, sau đó ném một con xúc xắc. Người chơi có số được viết gần hơn với số được viết trên giấy, người đó thắng vòng đó, nếu cả hai người có cùng hiệu số thì đó là một trận hòa. Nếu Amal viết số a và Bimal viết b, thì chúng ta phải đếm số cách Amal có thể thắng, số lần rút được và số cách Bimal có thể thắng.
Vì vậy, nếu đầu vào giống như a =2; b =4, thì kết quả đầu ra sẽ là [2, 1, 3] nên Amal có thể thắng theo 2 cách có thể. Nếu xúc xắc hiển thị 3, có một kết quả hòa.
Các bước
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
s1 := 0 s2 := 0 s3 := 0 if (a + b) mod 2 is same as 0, then: s2 := 1 if a is same as b, then: s2 := 6 otherwise when a > b, then: s1 := 6 - ((a + b) / 2) Otherwise s1 := (a + b - s2 - 1) / 2 s3 := 6 - s1 - s2 print s1, s2 and s3
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
#include <bits/stdc++.h> using namespace std; void solve(int a, int b) { int s1 = 0, s2 = 0, s3 = 0; if ((a + b) % 2 == 0) s2 = 1; if (a == b) s2 = 6; else if (a > b) s1 = 6 - ((a + b) / 2); else s1 = (a + b - s2 - 1) / 2; s3 = 6 - s1 - s2; cout << s1 << ", " << s2 << ", " << s3 << endl; } int main() { int a = 2; int b = 4; solve(a, b); }
Đầu vào
2, 4
Đầu ra
2, 1, 3