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