Computer >> Máy Tính >  >> Lập trình >> C ++

Chương trình C ++ để đếm số cách hai người chơi thắng hoặc hòa trong trò chơi ném xúc xắc

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