Bashゲーム---通常版

トピック1:リンクを送信

トピック1:

石が山積みになっています。ABでは2人が交代で、Aが最初になります。少なくとも1石、最大mを獲得するたびに、最後の石を獲得した人が勝ちます。ABが非常に賢いと仮定すると、石を選ぶ過程で間違いはありません。nとmが与えられた場合、最終的に誰がゲームに勝つかを尋ねます。たとえば、n = 3、m = 2です。Aがどうやってそれを手に入れても、Bは最後の石を手に入れることができます。

入力
行1:後で入力テストに使用される数値の数を表す数値T(1 <= T <= 10000)。2行目からT + 1行目:各行に2つの数字NとKがあり、スペースで区切られています(1 <= N、K <= 10 ^ 9)。

出力には
T行があります。Aが勝った場合はAを出力し、Bが勝った場合はBを出力します。

サンプル入力
4
3 2
4 2
7 3
8 3

サンプル出力
B
A
A
B

思考の流れの分析:
1 <= n <= mの場合、最初のAが勝ちます
。n== m + 1の場合、最初のAがいくつ取られても、Bは最終的に確実に終了します。
したがって: m +1はキー番号です

nは次の式を満たします:
n = k *(m + 1)+ r、(kは自然数、rは剰余、0 <= r <= m)

方法:
最初のプレイヤーは最初にrを奪い、常に(m + 1)の倍数の石を相手に残して、確実に勝つことができるようにします。

コード:

#include "stdio.h"
int main()
{
	int t;
	scanf("%d",&t);
	while(t--)
	{
		int n,m;
		scanf("%d %d",&n,&m);
		if(n%(m+1)!=0)
			printf("A\n");
		else
			printf("B\n");
	}
	return 0;
}

おすすめ

転載: blog.csdn.net/Helinshan/article/details/110309587