阳江有哪些建站公司,室内设计工作室简介,南京金融网站建设,php自己写框架做网站6Alice和Bob在玩骰子游戏#xff0c;他们用三颗六面的骰子#xff0c;游戏规则如下#xff1a; 点数的优先级是1点最大#xff0c;其次是6,5,4,3,2。三个骰子点数相同#xff0c;称为豹子#xff0c;豹子之间按点数优先级比较大小。如果只有两个骰子点数相同他们用三颗六面的骰子游戏规则如下 点数的优先级是1点最大其次是6,5,4,3,2。三个骰子点数相同称为豹子豹子之间按点数优先级比较大小。如果只有两个骰子点数相同称为对子对子之间按点数优先级比较大小。其他情况称为点子点子按点数和比较大小。豹子比对子、点子大对子比点子大如果对子的点数优先级相同就看剩余那个骰子的点数优先级。 现在给你Alice和Bob投掷骰子的情况判断一下胜负情况。 输入 第一行输入一个整数K表示游戏的次数。 以后每两行表示一个样例第一行是Alice骰子的点数。第二行是Bob骰子的点数。 输出 如果是Alice赢输出Alice,如果是Bob赢输出Bob,否则输出Draw。 样例输入 3
1 1 1
6 6 6
2 1 2
4 5 4
4 5 6
6 5 4样例输出 Alice
Bob
Draw 解题思路 这就是个比大小问题但是这里有“两套规则”一 如果有豹子或者对子时1是最大的二如果只有单点数的话比较的是 三个骰子数之和 这时 1又是最小的了。
这里我们优先设置 1 是最大的把它改成7。然后我们把所有情况都转换成 赋值运算。豹子最大赋值100对子其次赋值10最后单个点数赋值1。参考代码
最后比较 Alice 和 Bob 两个 谁的骰子赋值更高
AC代码
#include stdio.h
#include stdlib.hint ansA, ansB;
int diceA[5], diceB[5];void compere(int* dice,int ans)
{if (dice[0] dice[1] dice[1] dice[2])ans dice[0]*100;else if (dice[0] dice[1])ans dice[0]*10 dice[2];else if (dice[1] dice[2])ans dice[1]*10 dice[0];else if (dice[0] dice[2])ans dice[0]*10 dice[1];elseans (dice[0]-1)%6 (dice[1]-1)%6 (dice[2]-1)%6;
}int main()
{int K;scanf(%d,K);while ( K --){for (int i 0; i 3; i ){scanf(%d,diceA[i]);if (diceA[i] 1) diceA[i] 7;}for (int i 0; i 3; i ){scanf(%d,diceB[i]);if (diceB[i] 1) diceB[i] 7;}compere(diceA,ansA);compere(diceB,ansB);if (ansA ansB) puts(Alice);else if (ansA ansB) puts(Bob);else puts(Draw);}return 0;
}