列表

详情


NC236141. Bash游戏

描述

有一堆石子共有N个。A B两个人轮流拿,A先拿。每次最少拿1颗,最多拿K颗,拿到最后1颗石子的人获胜。假设A B都非常聪明,拿石子的过程中不会出现失误。给出N和K,问最后谁能赢得比赛。
例如N = 3,K = 2。无论A如何拿,B都可以拿到最后1颗石子。

输入描述

第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T <= 10000)
第2 - T + 1行:每行2个数N,K。中间用空格分隔。(1 <= N,K <= 10^9)

输出描述

共T行,如果A获胜输出A,如果B获胜输出B。

示例1

输入:

4
3 2
4 2
7 3
8 3

输出:

B
A
A
B

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++(g++ 7.5.0) 解法, 执行用时: 6ms, 内存消耗: 368K, 提交时间: 2023-05-26 16:26:08

#include<stdio.h>
int main()
{
	int n,m,k;
	scanf("%d",&n);
	for(int i=0;i<n;i++)
	{
		scanf("%d %d",&m,&k);
		if(m%(k+1)==0)
		{
			printf("B\n");
		}
		else
		{
			printf("A\n");
		}
	}
	return 0; 
 } 

C++ 解法, 执行用时: 43ms, 内存消耗: 464K, 提交时间: 2022-07-04 14:47:11

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int t,n,k;
    cin>>t;
    while(t--)
    {
    	cin>>n>>k;
    	printf("%c\n",(n%(1+k))?65:66);
	}
}

Python3 解法, 执行用时: 108ms, 内存消耗: 4600K, 提交时间: 2022-04-08 21:14:41

ncases = int(input())
for caseno in range(ncases):
	n, k = map(int, input().split())
	print('B' if n % (k + 1) == 0 else 'A')

上一题