首页 > 编程语言 >PTA 团体程序设计天梯赛 15分题 044

PTA 团体程序设计天梯赛 15分题 044

时间:2025-01-08 10:31:44浏览次数:3  
标签:15 string 分题 signal PTA str 出招 output 平局

L1-044 稳赢(15)

题目要求

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

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

输入格式

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

输出格式 

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

分析

本题即石头剪刀布的游戏,只允许赢和平局两种情况,可以写分别写两个函数,要赢的话针对石头剪刀布该出什么,要平局的直接出与对方相同即可。

每隔K次要赢一次,因此还需要对平局次数进行计数,满足间隔次数,则赢一次,并重新开始计算平局次数。

需要注意的是:输入以End结束,当输入End时,后面的不再进行判断

代码

#include <iostream>
#include <string>
#include <vector>
using namespace std;
//赢
string Win(string str){
    string output;
    if(str == "ChuiZi"){
        output = "Bu";
    }
    if(str == "JianDao"){
        output = "ChuiZi";
    }
    if(str == "Bu"){
        output = "JianDao";
    }
    return output;
}
//平局
string  Ping(string str){
    return str;
}
int main(){
    int K;//平局间隔次数
    int num = 0;//已经间隔的次数
    string output;
    cin >> K;
    vector <string> vec;//存储出招
    string signal;//手势
    while(cin >> signal && signal != "End"){
        vec.push_back(signal);//存入容器
    }
    // cout << vec.size() << endl;
    //遍历vec中的手势
    for(int i = 0;i < vec.size();i++ ){
        // cout << vec[i] << endl;
        //如果没到间隔次数
        if(num != K){
            output = Win(vec[i]);//赢
            num += 1;
            cout << output << endl;
        }else if(num == K){
            output = Ping(vec[i]); //平局
            num = 0; //平局间隔次数置零
            cout << output << endl;
        }
    }
    return 0;
}

标签:15,string,分题,signal,PTA,str,出招,output,平局
From: https://blog.csdn.net/LxiazichengxiL/article/details/144991492

相关文章

  • 10.15
    程序设计语言程序设计语言的基本概念文老师软考教育◆程序设计语言是为了书写计算机程序而人为设计的符号语言,用于对计算过程进行描述、组织和推导。◆低级语言:机器语言(计算机硬件只能识别0和1的指令序列),汇编语言。◆高级语言:功能更强,抽象级别更高,与人们使用的自然语言比较......
  • Spring MVC注解故障追踪记15
    SpringMVC是美团点评很多团队使用的Web框架。在基于SpringMVC的项目里,注解的使用几乎遍布在项目中的各个模块,有Java提供的注解,如:@Override、@Deprecated等;也有Spring提供的注解,如:@Controller、@Service、@Autowired等;同时还可能有自定义注解等。注解一方面可以作为标记说明使......
  • Spring MVC注解故障追踪记15
    SpringMVC是美团点评很多团队使用的Web框架。在基于SpringMVC的项目里,注解的使用几乎遍布在项目中的各个模块,有Java提供的注解,如:@Override、@Deprecated等;也有Spring提供的注解,如:@Controller、@Service、@Autowired等;同时还可能有自定义注解等。注解一方面可以作为标记说明使......
  • 面试经典150题——链表(二)
    文章目录1、删除链表的倒数第N个结点1.1题目链接1.2题目描述1.3解题代码1.4解题思路2、删除排序链表中的重复元素II2.1题目链接2.2题目描述2.3解题代码2.4解题思路3、旋转链表3.1题目链接3.2题目描述3.3解题代码3.4解题思路4、分隔链表4.1题目链接4.2......
  • docker配置mysql一主多从。宿主机Navicat Premium 15通过不同ip连接
    1.环境准备1.1拉取MySQL镜像dockerpullmysql:8.0解释:从Docker官方镜像仓库中拉取MySQL8.0镜像,确保我们使用最新版本。如果已经拉取,可以跳过这步。1.2创建自定义网络(二选一)1.2.1创建自定义网络(端口不同)dockernetworkcreatemysql-cluster解释:创建......
  • 题解:P1541 [NOIP2010 提高组] 乌龟棋
    基础动态规划。这道题的题目条件显然满足阶段性和无后效性,那么有一个直观的思路就是把当前所处格子和四种卡片的使用次数作为状态。但是如果按照上面的想法,数组空间是无法开下的,所以我们稍微变一下思路,把四种卡片的使用数量作为状态,对于当前所处格子的话可以直接计算出来,这样数......
  • P8037 [COCI2015-2016#7] Prokletnik 题解
    题意定义一个区间$l,r$为好的当且仅当最小值为$a_l$且最大值为$a_r$或最大值为$a_l$且最小值为$a_r$。我们先考虑最小值为$a_l$且最大值为$a_r$的,另一个我们翻转过来在搞一遍就好了。先考虑将询问离线按$r$排序,容易发现,对于每个右端点$r$对应的合法左端点是......
  • 20250107面试鸭特训营第15天
    更多特训营笔记详见个人主页【面试鸭特训营】专栏2501071.如何解决Redis中的热点key问题?将访问频率占比过大或宽带占比过大的key定义为热点key由于Redis的读写操作是单线程进行,热点key可能会占用大量CPU资源,在集群环境下导致流量不均衡如何发现热点......
  • 15SQ045肖特基二极管45V电压参数详情介绍
    肖特基二极管(Schottky diode),肖特基二极管的物理结构基于金属-N型半导体结,因而具有很低的正向压降和极快的开关速度。以下是对肖特基二极管的详细介绍:15SQ045肖特基二极管产品型号:15SQ045产品封装:R-6峰值重复反向电压VRRM:45V最大平均整流电流I(AV) : 15A最大峰值......
  • Java 8系列之重新认识HashMap15
     摘要HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK(JavaDevelopmetKit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JDK1.8的区别,深入探讨HashMap的结构实现和功能原理。简介Ja......