【规律】【模拟】JZOJ·游戏

博客围绕两人拿金块游戏展开,只能拿2的次方数金块,判断谁拿到最后一块获胜。解题先明确题目,若金块数是三的倍数则第一个人(king)赢,否则另一个人赢,还给出代码部分但未展示具体代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目大意:

两个人拿金块(只能拿2的次方4 8…),看谁拿到最后一块(有钱人都这么玩的吗?),若第一个人(king)赢了,就输出“ King will win.”否则输出“ MaoLaoDa willwin.”, 第二行输出他第一次拿的最小数量。


思路:

先推规律,发现如果是三的倍数king赢,否则猫老大(精灵宝可梦?)赢


CodeCodeCode:

#include<cstdio>
#include<iostream> 
using namespace std;
long long n;
int ans[1000];
int main()
{
//  freopen("atlantis.in","r",stdin);
//  freopen("atlantis.out","w",stdout);
	for(int i=1;i<=3;i++)//三个数
	{
	  cin>>n;//金块
	  for(int j=1;j<=n;j++)
	  ans[i]=n;//方便下面求
	  
    }
    for(int i=1;i<=3;i++)
    {
      if(ans[i]%3==0)printf("King will win.\n");//模拟规律
	  else cout<<"MaoLaoDa will win."<<endl<<ans[i]%3<<endl;;
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值