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
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP