格子游戏(c++)

编程入门 行业动态 更新时间:2024-10-26 08:20:54

<a href=https://www.elefans.com/category/jswz/34/1765568.html style=格子游戏(c++)"/>

格子游戏(c++)

小A与小B面对面站在一条直线的两个端点上,在他们中间有N个方格,小A与小B轮流向前移动M个格子,1<=M<=3,首先是小A向前移动,再是小B移动,然后又是小A移动。当轮到谁进行移动时,而他又无法移动时,这个人就输了。也就是在小A与小B之间已没有方格时,此时轮到谁移动,谁就输了。 例如当N=10时

Format

Input

一行给出数字N

Output

如果小A有必胜的方法,输出"Yes“,否则输出”No"

思路:假设n=10

A___ ___ ___ ___ ___ ___ ___ ___ ___ ___ B

首先是小A移动,他向前移动2个格子,形成如下局面

___ A_ ___ ___ ___ ___ ___ ___ ___ ___B

接下来小B向前移动1个格子,形成如下局面

___ A_ ___ ___ ___ ___ ___ ___ ___ B_

轮到小A移动,他向前移动3个格子,形成如下局面

___ ___ ___ ___ A_ ___ ___ ___ ___ B_

再轮到小B移动,他向前移动1个格子,形成如下局面

___ ___ ___ ___ A ___ ___ ___ B ___

轮到小A移动,他向前移动3个格子,形成如下局面

___ ___ ___ ___ ___ ___ ___ AB_ ___

此时轮到B移动了,但此时A、B之间已没有格子了,B无法再向前移动了,于是B输了这场比赛。

所以,知道小A第一个移动,那我们就让一个能凑出来的数当倍数,那么就是4了,那么这样,小A要先把n凑到4的倍数,然后就和小B凑4

小B出3,小A出1,3+1=4

小B出2,小A出2,2+2=4

小B出1,小A出3,1+3=4

所以当n是4的倍数时,小B才会赢

CODE:

#include <bits/stdc++.h>
using namespace std;
int main() {int n;cin >> n;if (n % 4 != 0)//判断倍数cout << "Yes" << endl;elsecout << "No" << endl;return 0;
}

更多推荐

格子游戏(c++)

本文发布于:2023-06-28 00:35:36,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/919151.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:格子   游戏

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!