題目
題目描述輸入描述:
輸入第1行給出正整數n(<=105),即雙方交鋒的次數。隨後n行,每行給出一次交鋒的資訊,即甲、乙雙方同時給出的的手勢。c代表「錘子」、j代表「剪刀」、b代
表「布」,第1個字母代表甲方,第2個代表乙方,中間有1個空格。
輸出描述:
輸出第1、2行分別給出甲、乙的勝、平、負次數,數字間以1個空格分隔。第3行給出兩個字母,分別代表甲、乙獲勝次數最多的手勢,中間有1個空格。如果解不唯
一,則輸出按字母序最小的解。
輸入例子:
10c j
j bc b
b bb c
c cc b
j bb c
j j輸出例子:
5 3 2
2 3 5
b b**
第一次用c++做題,感受到了物件導向思想的妙處
#define _crt_secure_no_warnings
#include
#include
int i;
class people
;//最多容納字母個數
intplay
(int total);}
;class checker
;int people:
:play
(int cur)
//判斷勝負
int checker:
:check
(people *jia, people *yi,
int total)
elseif(
(jia->a[cur_ckr]
=='j'
&& yi->a[cur_ckr]
=='b')||
(jia->a[cur_ckr]
=='b'
&& yi->a[cur_ckr]
=='c')||
(jia->a[cur_ckr]
=='c'
&& yi->a[cur_ckr]
=='j'))
//甲勝利
}elseif(
(jia->a[cur_ckr]
=='b'
&& yi->a[cur_ckr]
=='j')||
(jia->a[cur_ckr]
=='c'
&& yi->a[cur_ckr]
=='b')||
(jia->a[cur_ckr]
=='j'
&& yi->a[cur_ckr]
=='c'))
//乙勝利
}else
return-1
;//返回錯誤**
}return0;
}//列印
class printer
void
print_char
(people *jia, people *yi)
else
if(jia->winbecauseof_c > jia->winbecauseof_j&& jia->winbecauseof_c > jia->winbecauseof_b)
else
if(jia->winbecauseof_b > jia->winbecauseof_c&& jia->winbecauseof_b > jia->winbecauseof_j)
else
if(jia->winbecauseof_j == jia->winbecauseof_b == jia->winbecauseof_c)
else
if(jia->winbecauseof_j == jia->winbecauseof_b || jia->winbecauseof_b == jia->winbecauseof_c)
else
if(jia->winbecauseof_j == jia->winbecauseof_c)
//乙if
(yi->winbecauseof_j > yi->winbecauseof_c&& yi->winbecauseof_j > yi->winbecauseof_b)
else
if(yi->winbecauseof_c > yi->winbecauseof_j&& yi->winbecauseof_c > yi->winbecauseof_b)
else
if(yi->winbecauseof_b > yi->winbecauseof_c&& yi->winbecauseof_b > yi->winbecauseof_j)
else
if(yi->winbecauseof_j == yi->winbecauseof_b == yi->winbecauseof_c)
else
if(yi->winbecauseof_j == yi->winbecauseof_b || yi->winbecauseof_b == yi->winbecauseof_c)
else
if(yi->winbecauseof_j == yi->winbecauseof_c)
std:
:cout << std:
:endl;}}
;int
main()
else yi.cur = yi.
play
(yi.cur);}
//逐個字母比較
checkok = checker.
check
(&jia,
&yi, total)
;//優化:定義為虛函式
if(checkok ==-1
)//程式的健壯性
//列印
printer printer;
printer.
print_num
(&jia,
&yi)
; printer.
print_char
(&jia,
&yi)
;system
("pause");
}
PAT(乙級)1008 錘子剪刀布 20
大家應該都會玩 錘子剪刀布 的遊戲 現給出兩人的交鋒記錄,請統計雙方的勝 平 負次數,並且給出雙方分別出什麼手勢的勝算最大。輸入第1行給出正整數n 105 即雙方交鋒的次數。隨後n行,每行給出一次交鋒的資訊,即甲 乙雙方同時給出的的手勢。c代表 錘子 j代表 剪刀 b代 表 布 第1個字母代表甲方,...
PAT 乙級真題 1008 錘子剪刀布
題目描述 輸入格式 輸入第1行給出正整數n 105 即雙方交鋒的次數。隨後n行,每行給出一次交鋒的資訊,即甲 乙雙方同時給出的的手勢。c代表 錘子 j代表 剪刀 b代 表 布 第1個字母代表甲方,第2個代表乙方,中間有1個空格。輸出格式 輸出第1 2行分別給出甲 乙的勝 平 負次數,數字間以1個空格...
牛客網PAT 乙 月餅
月餅是中國人在中秋佳節時吃的一種傳統食品,不同地區有許多不同風味的月餅。現給定所有種類月餅的庫存量 總售價 以及市場的最大需 求量,請你計算可以獲得的最大收益是多少。注意 銷售時允許取出一部分庫存。樣例給出的情形是這樣的 假如我們有3種月餅,其庫存量分別為18 15 10萬噸,總售價分別為75 72...