標題:
剪刀石頭布
[打印本頁]
作者:
葉桔良
時間:
2022-11-4 21:27
標題:
剪刀石頭布
本帖最後由 葉桔良 於 2022-11-11 21:03 編輯
石頭剪刀布是常見的猜拳遊戲。石頭勝剪刀,剪刀勝布,布勝石頭。如果兩個人出拳一樣,則不分勝負。
一天,小A 和小B 正好在玩石頭剪刀布。已知他們的出拳都是有周期性規律的,比如:“石頭-布-石頭-剪刀-石頭-布-石頭-剪刀……”,就是以“石頭-布-石頭-剪刀”為周期不斷循環的。請問,小A 和小B 比了N 輪之後,誰贏的輪數多?
輸入格式
輸入包含三行。
第一行包含三個整數:
N,N A,N B,分別表示比了
N 輪,小A 出拳的周期長度,小B 出拳的周期長度。0<N,N A ,N B <100。
第二行包含N A個整數,表示小A 出拳的規律。
第三行包含N B個整數,表示小B 出拳的規律。
其中,0 表示“石頭”,2 表示“剪刀”,5 表示“布”。相鄰兩個整數之間用單個空格隔開。
輸出格式
輸出一行,如果小A 贏的輪數多,輸出"A";如果小B 贏的輪數多,輸出"B";如果兩人打平,輸出“draw”。
提示
對於測試數據,猜拳過程為:
A:0 2 5 0 2 5 0 2 5 0
B:0 5 0 2 0 5 0 2 0 5
A 贏了4 輪,B 贏了2 輪,雙方打平4 輪,所以A 贏的輪數多。
[attach]14089[/attach]
作者:
葉桔良
時間:
2022-11-4 21:28
#include<cstdlib>
#include<iostream>
#include <algorithm>
using namespace std;
int main( )
{
int n,a,b,numa[105],numb[105];
cin>>n>>a>>b;
int A=0,B=0;
for(int i=0;i<a;i++)
cin>>numa[i];
for(int i=0;i<b;i++)
cin>>numb[i];
for(int i=0;i<n;i++)
{
if((numa[i%a]==0 && numb[i%b]==2)||(numa[i%a]==5 && numb[i%b]==0)||(numa[i%a]==2 && numb[i%b]==5))
A++;
else if((numb[i%b]==0 && numa[i%a]==2)||(numb[i%b]==5 && numa[i%a]==0)||( numb[i%b]==2 && numa[i%a]==5 ))
B++;
}
if(A>B)
cout<<"A"<<endl;
else if(A<B)
cout<<"B"<<endl;
else
cout<<"draw";
system("pause") ;
return 0;
}
複製代碼
歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/)
Powered by Discuz! 7.2