大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 输入首先在第一行给出正整数 之后每行给出对方的一次出招:“ChuiZi”代表“锤子”、“JianDao”代表“剪刀”、“Bu”代表“布”。“End”代表输入结束,这一行不要作为出招处理。输入保证对方至少出了一招。 对每一个输入的出招,按要求输出赢或输局的招式。每招占一行。 注:上面的代码中,随机数序列
题目描述
现要求你编写一个控制赢面的程序,根据对方的出招,给出对应的赢招。但是!为了不让对方意识到你在控制结果,你需要隔
K 次输一次,其中
K 是系统设定的随机数。输入格式
N(
≤10),随后给出
N 个系统产生的不超过 10 的正随机数 {
K1,K2,⋯,KN },数字间以空格分隔。这意味着第
i(
i=0,1,⋯,N−1)次输局之后应该隔
Ki+1 次再让下一个输局。如果对方出招太多,则随机数按顺序循环使用。例如在样例中,系统产生了 3 个随机数 {2, 4, 1},则你需要:赢 2 次,输 1 次;赢 4 次,输 1 次;赢 1 次,输 1 次;然后再次回到第 1 个随机数,赢 2 次,输 1 次。输出格式
输入样例
3 2 4 1 ChuiZi JianDao Bu JianDao Bu ChuiZi ChuiZi ChuiZi JianDao Bu JianDao Bu ChuiZi End
输出样例
Bu ChuiZi ChuiZi ChuiZi JianDao Bu Bu JianDao ChuiZi ChuiZi ChuiZi JianDao JianDao
程序代码
Python
n,*rand=map(int,input().split()) # 输入 n,以及随机数序列 ying={'ChuiZi': 'Bu', 'JianDao': 'ChuiZi', 'Bu': 'JianDao'} shu={'Bu': 'ChuiZi', 'ChuiZi': 'JianDao', 'JianDao': 'Bu'} i=0 fg=0 while True: # 赢若干次 # 如果对方出招太多,则随机数按顺序循环使用,所以是 rand[i%n] for j in range(rand[i%n]): x=input() if x=="End": fg=1 # "End"代表输入结束,设置标志并退出循环 break print(ying[x]) # 输出对应赢的招数,也可以用多个 if 直接判断输出那个 if(fg): break # 输一次 x=input() if x=="End": break print(shu[x]) i+=1 # 换下一组随机数
rand
为 list
类型。关于 *rand
这一用法的解释,请参考:Python3 序列解包。有关 *
的更多用法,可以阅读:Python3 * 和 ** 运算符。C++
#include <bits/stdc++.h> using namespace std; int main() { int n; cin >> n; vector<int> v; for(int i = 0; i < n; i++) { int a; cin >> a; v.push_back(a); } map<string, string> ying = { // 三种手势对应赢的招数 {"ChuiZi", "Bu"}, {"JianDao", "ChuiZi"}, {"Bu", "JianDao"} }, shu = { // 三种手势对应输的招数 {"Bu", "ChuiZi"}, {"ChuiZi", "JianDao"}, {"JianDao", "Bu"} }; int current = 0, end = 0; while(1) { // 赢若干次 // 如果对方出招太多,则随机数按顺序循环使用,所以是 v[current % n] for(int j = 0; j < v[current % n]; j++) { string x; cin >> x; if(x == "End") { end = 1; // "End"代表输入结束,设置标志并退出循环 break; } puts(ying[x].c_str()); // 输出对应赢的招数,也可以用多个 if / switch 直接判断输出那个 } if(end) break; // 输一次 string x; cin >> x; if(x == "End") { break; } puts(shu[x].c_str()); current++; // 换下一组随机数 } return 0; }
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算