齐大第十一届校赛第一题
时间限制:1000ms 内存限制:65535KB
题目描述:
Cola 和 koala 是来自某市附二中的学生。一天,他们因为帮助网管王叔叔修好了机房的电脑而得到了许多糖果。于是他们决定要用这些糖果玩一场游戏。
游戏的内容是这样的:
他们把糖果放在一堆,由 Cola 先手,现在两人轮流依次拿走若干糖果。
为了方便描述,现在定义某人单次拿走的糖果数量为 y ,剩余糖果数量为 x。
为了防止出现僵局,每人每轮不能够不拿糖果,也就是说,每人每轮最少要拿 1 颗糖果,即 1≤y 。
每人每轮也不能拿走剩下的全部糖果,否则会显得很贪婪,即 y<x。
为了增强趣味性,也避免Cola只给Koala留下一块糖果,他们要求 y 必须是当前剩余糖果数量的约数,即:x%y==0。
就这样,如果轮到谁无法进行满足上述要求的操作,则视为失败。
学习了程序设计的你对此也很感兴趣,你想知道,在假设他们两个人足够聪明的情况下, Cola 是否会获胜。
于是你设计了一个程序,如果 Cola 能够获胜,则输出true,否则输出false。
输入格式:
一行,一个正整数x,表示初始糖果的数量。(1≤x≤1012)
输出格式:
一行,一个字符串"true" 或 "false"。注意大小写,不带引号
代码实现:
#include <iostream>
using namespace std;
int main()
{
long long n;
cin>>n;
if(n%2==0)
{
cout<<"true"<<endl;
}
else
cout<<"false"<<endl;
return 0;
}
本题算是简单的博弈论,可以通过列举得出本体答案逻辑