程设模拟考 A:石头剪刀布
题目见此:http://cxsjsx.openjudge.cn/2013weekend5a/A/
解题思路
- 用一个二维win数组表示双方出拳后的结果,1为A赢,-1为B赢,最后加到结果上
贴代码:
1 #include <iostream> 2 using namespace std; 3 4 int win[3][3] = {0, 1, -1, -1, 0, 1, 1, -1, 0}; 5 int pa[101], pb[101]; 6 int main() 7 { 8 int k, n, na, nb; 9 cin >> k; 10 while(k--) 11 { 12 cin >> n >> na >> nb; 13 for(int i=0 ; i<na ; i++) 14 { 15 cin >> pa[i]; 16 pa[i] >>= 1; 17 } 18 for(int i=0 ; i<nb ; i++) 19 { 20 cin >> pb[i]; 21 pb[i] >>= 1; 22 } 23 int res = 0; 24 for(int i=0, j=0 ; n ; i=(i+1)%na, j=(j+1)%nb, n--) 25 res += win[pa[i]][pb[j]]; 26 if(res > 0) cout << "A" << endl; 27 else if(res < 0) cout << "B" << endl; 28 else cout << "draw" << endl; 29 } 30 }
主要要加快写这种题的速度