易知2-9为先手胜
继续递推下去 10-18 后手胜
再推发现19-162先手胜
即发现有9(9) 18(2*9) 162(9*2*9).....
#include<bits/stdc++.h> using namespace std; typedef long long ll; int main() { ll n; while (cin >> n) { ll p = 1; for (int i = 1; i; i++) { if (i & 1) { p *= 9LL; } else { p *= 2LL; } if (p >= n) { if (i & 1) { puts("Stan wins."); } else { puts("Ollie wins."); } break; } } } return 0; }