打卡信奥刷题(1377)用C++实现信奥 P4018 Roy&October之取石子

P4018 Roy&October之取石子

题目背景

Roy 和 October 两人在玩一个取石子的游戏。

题目描述

游戏规则是这样的:共有 nnn 个石子,两人每次都只能取 pkp^kpk 个( ppp 为质数,kkk 为自然数,且 pkp^kpk 小于等于当前剩余石子数),谁取走最后一个石子,谁就赢了。

现在 October 先取,问她有没有必胜策略。

若她有必胜策略,输出一行 October wins!;否则输出一行 Roy wins!

输入格式

第一行一个正整数 TTT,表示测试点组数。

222∼\simT+1T+1T+1 行,一行一个正整数 nnn,表示石子个数。

输出格式

TTT 行,每行分别为 October wins!Roy wins!

输入输出样例 #1

输入 #1

3
4
9
14

输出 #1

October wins!
October wins!
October wins!

说明/提示

对于 30%30\%30% 的数据,1≤n≤301\leq n\leq 301n30

对于 60%60\%60% 的数据,1≤n≤1061\leq n\leq 10^61n106

对于 100%100\%100% 的数据,1≤n≤5×1071\leq n\leq 5\times 10^71n5×107, 1≤T≤1051\leq T\leq 10^51T105

(改编题)

C++实现

#include<iostream>
using namespace std;
int main()
{
    int n,a;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a;
        if(a%6==0)cout<<"Roy wins!"<<endl;
        else cout<<"October wins!"<<endl;
    }
}

在这里插入图片描述

后续

接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值