传送门
【题目分析】
经典博弈问题。
首先n的位置为必胜态,所以均为必败态,
为必胜态。。。。。以此类推,所以只用一直除一个18(不过要向上取整),最后判断,如果在1~9之间则先手胜出,否则后手胜。
【代码~】
#include<bits/stdc++.h>
using namespace std;
long long n;
int main(){
while(scanf("%lld",&n)!=EOF){
while(n>18){
n=ceil(1.0*n/18.0);
}
if(n<=9)
puts("Stan wins.");
else
puts("Ollie wins.");
}
return 0;
}
本文深入探讨了一款经典博弈问题的解决策略,通过数学逻辑分析,确定了游戏胜负的关键因素。文章提出了一种通过不断除以18并向上取整的方法来判断最终胜利者,即若结果位于1至9之间,则先手玩家获胜;反之,则后手玩家胜出。代码实现简洁明了,易于理解。
203

被折叠的 条评论
为什么被折叠?



