这题是个博弈论,结论出奇简单= =
- 如果A包含B,或把B翻转后A包含B,Manao wins,否则Manao loses……
考虑如果A怎样都不包含B,B每回合不停翻转就行了;否则A都可以变得和B相同。
#include <bits/stdc++.h>
using namespace std;
int w,x,d;
class TheNumberGame {
public:
string determineOutcome( int A, int B );
};
int pd(int A,int B){
while(A){
if (A%w==B) return 1;
A/=10;
}
return 0;
}
string TheNumberGame::determineOutcome(int A, int B) {
w=1;
x=B,d=0;
while(x){
w*=10;
d=d*10+x%10;
x/=10;
}
if (pd(A,B)||pd(A,d)) return "Manao wins";
return "Manao loses";
}