铁一通道:#F. 智力考验。
问题描述
在oiClass里,小A和小B是非常聪明的两个同学,为了一分高低,他们决定玩一个智力游戏。首先,小A挑出 n 个棋子,然后小B给出一个整数 k。接着,小A和小B轮流取走棋子,每人每次只能取走 1 到 k 个棋子,取走最后一个棋子的人胜。每一轮都是A先取。现在知道小A给出的 n,你能帮小B想一个最小的 k,确保小B能稳赢吗?
输入格式
输入一行只包含一个整数 n。
输出格式
输出能确保小B稳赢的 k 值。
如果有多个满足条件的 k,输出最小的 k。
如果不存在保证能必胜的 k,则输出 0。
输入数据 1
3
输出数据 1
2
样例解释
小A给出 3 个棋子,小B把 k 定为 2,有必胜把握。
在这种情况下,如果小A取了 1 个棋子,那么小B可以取剩下的 2 个棋子,小B胜。如果小A取了 2 个棋子,那么小B取 1 个,也是小B胜。
数据范围
60%的数据:n≤50
100%的数据:n≤231
本人没有一点思路,求思路/代码。