Description
有1~n个数字,两个人轮流选择一个数字,并把它和它的约数擦去。擦去最后一个数的人赢,问谁会获胜。
题解:
类似于chomp博弈的巧克力游戏(把约数1当作右上角那块格子)。每个数的约数都有1,先手可以取走1把必败态扔给对方。
所以除了n==0的情况,总有先手必胜。
1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 int main() 5 { 6 int n; 7 while(scanf("%d",&n)!=EOF) 8 { 9 if(n!=0) 10 cout<<"win"<<endl; 11 else 12 cout<<"fail"<<endl; 13 } 14 return 0; 15 }