守护骑士和远征骑士
B-骑士的对决
http://www.nowcoder.com/questionTerminal/ba5a580a67a44a1d919ea02e312090c8
- 骑士的对决题解
守护骑士可以有两个武器,远征骑士只有一个武器,因为武器是平等的,并且相互克制,我们发现守卫骑士在有两个武器的情况下是不可能输的,因为守护骑士是不想输的,所以结果肯定是守护骑士赢远征骑士或者守护骑士和远征骑士平局.
//第一种写法,以守护骑士为视角,将全部的结果罗列出来.比较长
#include<iostream>
using namespace std;
int main () {
char a, b;
cin >> a >> b;
char c;
cin >> c;
if ((a == 'S' && b == 'J')|| (a == 'J' && b == 'S')) {
if (c == 'B')
cout << "pmznb" << endl;
if (c == 'S')
cout << "lyrnb"<< endl;
if (c == 'J')
cout << "pmznb" << endl;
}
if ((a == 'B' && b == 'J')|| (a == 'J' && b == 'B')) {
if (c == 'B')
cout << "pmznb" << endl;
if (c == 'S')
cout << "pmznb" << endl;
if (c == 'J')
cout << "lyrnb"<< endl;
}
if ((a == 'S' && b == 'B')|| (a == 'B' && b == 'S')) {
if (c == 'B')
cout << "lyrnb"<< endl;
if (c == 'S')
cout << "pmznb" << endl;
if (c == 'J')
cout << "pmznb" << endl;
}
return 0;
}第二种:
//第二种,代码比较.
#include<iostream>
using namesapce std;
int main()
{
char a,b,c;
cin >> a >> b;
cin >> c;
if(c=='S'&&(a=='B'||b=='B'))
printf("pmznb");
else if(c=='J'&&(a=='S'||b=='S'))
printf("pmznb");
else if(c=='B'&&(a=='J'||b=='J'))
printf("pmznb");
else
printf("lyrnb");
}
查看3道真题和解析