牛客網 PAT乙級1008 錘子剪刀布 20

2021-09-10 14:38:51 字數 3127 閱讀 7562

題目

題目描述輸入描述:

輸入第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...