C++程式:計算擲骰子游戲中兩位玩家獲勝或平局的可能性


假設我們有兩個數字a和b。阿瑪爾和比馬爾正在玩一個遊戲。首先,他們每個人寫下1到6之間的一個整數,然後擲骰子。寫下的數字更接近骰子點數的玩家贏得這一輪;如果兩者差值相同,則為平局。如果阿瑪爾寫下數字a,比馬爾寫下數字b,那麼我們必須計算阿瑪爾獲勝的可能性數量、平局數量和比馬爾獲勝的可能性數量。

因此,如果輸入為a = 2;b = 4,則輸出為[2, 1, 3],這意味著阿瑪爾有2種獲勝方式。如果骰子顯示3,則為平局。

步驟

為了解決這個問題,我們將遵循以下步驟:

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

示例

讓我們來看下面的實現,以便更好地理解:

#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);
}

輸入

2, 4

輸出

2, 1, 3

更新於:2022年3月3日

瀏覽量:192

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告