L1-044 稳赢

Posted frances-cy-fkym

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了L1-044 稳赢相关的知识,希望对你有一定的参考价值。

L1-044 稳赢 (15 分)

大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:

技术分享图片

现要求你编写一个稳赢不输的程序,根据对方的出招,给出对应的赢招。但是!为了不让对方输得太惨,你需要每隔K次就让一个平局。

输入格式:

输入首先在第一行给出正整数K(10),即平局间隔的次数。随后每行给出对方的一次出招:ChuiZi代表“锤子”、JianDao代表“剪刀”、Bu代表“布”。End代表输入结束,这一行不要作为出招处理。

输出格式:

对每一个输入的出招,按要求输出稳赢或平局的招式。每招占一行。

输入样例:

2
ChuiZi
JianDao
Bu
JianDao
Bu
ChuiZi
ChuiZi
End

输出样例:

Bu
ChuiZi
Bu
ChuiZi
JianDao
ChuiZi
Bu
#include<iostream>
#include<string>

using namespace std;

int revert(string str) {
    if (str == "Bu")
        return 1;
    if (str == "ChuiZi")
        return 2;
    if (str == "JianDao")
        return 3;
    if (str == "End")
        return 0;
}

int win(int key) {
    switch (key) {
    case 1:return 3; break;
    case 2:return 1; break;
    case 3:return 2; break;
    default:return -1;
    }
}

void print(int winkey) {
    switch (winkey) {
    case 1:cout << "Bu" << endl; break;
    case 2:cout << "ChuiZi" << endl; break;
    case 3:cout << "JianDao" << endl; break;
    default:break;
    }
}

int main() {
    int k , cnt = 0;
    string str;
    cin >> k;
    while (cin >> str) {
        int key = revert(str);
        if (key == 0)
            break;
        else {
            cnt++;
            if (!(cnt%(k+1))) {
                print(key);
            }
            else {
                int winkey = win(key);
                print(winkey);
            }
        }
    }

    return 0;
}

 

以上是关于L1-044 稳赢的主要内容,如果未能解决你的问题,请参考以下文章

L1-044 稳赢

团体程序设计天梯赛-练习集-L1-044. 稳赢

天梯赛L1-044 稳赢

Go语言入门150题 L1-044 稳赢 (15 分) Go语言 | Golang

石头剪刀布 L1-044 稳赢 15分

天梯赛每日打卡05(41-45题解)