这道题目完全由自己推出来的必败态。
初始状态时 count=false; 输入n
假设输入 162
count=false, n=162 这种状态为必败态
然后 循环推出 n<=9时必败态是否为1 如果为1那么先手输,否则先手胜...
while(n>9||count==true) 当n<=9且 当前状态为必败态时 退出循环
{
if(count%2==0)
n=(n%9!=0)?n/9+1:n/9;
else
n=(n%2!=0)?n/2+1:n/2;
count=!count;
}
if(n!=1)
cout<<"先手赢";
else
cout<<"先手输";