L1-4 穩贏 (15分)


L1-4 穩贏 (15分)

大家應該都會玩“錘子剪刀布”的游戲:兩人同時給出手勢,勝負規則如圖所示:

現要求你編寫一個穩贏不輸的程序,根據對方的出招,給出對應的贏招。但是!為了不讓對方輸得太慘,你需要每隔K次就讓一個平局。

輸入格式:

輸入首先在第一行給出正整數K(≤10),即平局間隔的次數。隨后每行給出對方的一次出招:ChuiZi代表“錘子”、JianDao代表“剪刀”、Bu代表“布”。End代表輸入結束,這一行不要作為出招處理。

輸出格式:

對每一個輸入的出招,按要求輸出穩贏或平局的招式。每招占一行。

輸入樣例:

2
ChuiZi
JianDao
Bu
JianDao
Bu
ChuiZi
ChuiZi
End

輸出樣例:

Bu
ChuiZi
Bu
ChuiZi
JianDao
ChuiZi
Bu
這個題很簡單,但是一直有坑,我用char數組跟字符串比較一直不行,知道我最后換成了String才行,以后再繼續探討吧!

剛才問了馮大佬 說
char二維不能直接判斷等號 靠!!!

#include<iostream>
#include<stdio.h>
#include<string>
using namespace std;

int main()
{
	
     int n;
     cin>>n;
     int i=0;
      int flag=0;
 
     string s;
    while(1)
	 	{
 		cin>>s;
 		 
 	 if(s=="End")break;
 		if(i==0||i%n||flag==0)
		{
 			i++;
	     flag=1;
		if(s=="Bu")
		cout<<"JianDao"<<endl;
		else if(s=="ChuiZi")
		cout<<"Bu"<<endl;
	    else if(s=="JianDao")
		cout<<"ChuiZi"<<endl;
		}
		else
		{
		flag=0;
		cout<<s<<endl;
		}
	
 }
}

上面我寫的,下面人家寫的。。。菜雞與大佬的差距!!!

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

map<string,string> mp;

void init(){
	mp["ChuiZi"] = "Bu";
	mp["Bu"] = "JianDao";
	mp["JianDao"] = "ChuiZi";
}
int main(){
	string input;
	int t = 1;
	int k;
	cin>>k;
	init();
	while(cin>>input){
		if(input == "End")break;
		if(t == k+1){
			cout<<input<<endl;
		}else{
			cout<<mp[input]<<endl;
		}
		if(t == k+1) t = 1;
		else t++;
	}
	return 0;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM