大家好,又见面了,我是全栈君。
1180. Stone Game
Memory limit: 64 MB
N stones in front of them. Both Nikifors in turns take some stones from the heap. One may take any number of stones with the only condition that this number is a nonnegative integer power of 2 (e.g. 1, 2, 4, 8 etc.). Nikifor who takes the last stone wins.You are to write a program that determines winner assuming each Nikifor does its best.
Input
N (condition
N ≤ 10
250 holds).
Output
Sample
input | output |
---|---|
8 |
1 2 |
Problem Author: Dmitry Filimonenkov
Problem Source: Third USU personal programming contest, Ekaterinburg, Russia, February 16, 2002
解析:找规律。
考虑例如以下样例:
剩余石子的数量 first Nikifor
1 win
2 win
—- 依次选择1,2. 而且1 和 2是能够选择的。
3 lose
—- 由于你选1或2的时候,另外一个人总能一次把剩下的取完。
4, 5 win
—- 依次选择1,2,可以获胜。
6 lose
7, 8 win
…. 从上面的规律我们能够看出当 N mod 3 == 0 我们能确认first Nikifor一定能失败;否则的话。我们能选择的最小石子的数量 = N mod 3,此时first Nikifor获胜。
AC代码:
#include <bits/stdc++.h> using namespace std; int main(){ int ans = 0; char c; while(scanf("%c", &c) && c != '\n') ans += c - '0'; //求个位数字之和以推断数字能否被3整除,数太大。直接存不下!if(ans % 3 == 0) puts("2"); else printf("%d\n%d", 1, ans % 3); return 0;}
.
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/116181.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...