码迷,mamicode.com
首页 > 其他好文 > 详细

L1-044 稳赢

时间:2019-01-19 23:24:33      阅读:337      评论:0      收藏:0      [点我收藏+]

标签:lse   case   int   间隔   ima   规则   amp   ase   hit   

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 稳赢

标签:lse   case   int   间隔   ima   规则   amp   ase   hit   

原文地址:https://www.cnblogs.com/Frances-CY-FKYM/p/10293620.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!