zoukankan      html  css  js  c++  java
  • C++数论题(博弈论)

    洛谷3150题,此题不难(细节很重要)

    题目背景

    原创)

    有一天 pb和zs玩游戏 你需要帮zs求出每局的胜败情况

    题目描述

    游戏规则是这样的: 每次一个人可以对给出的数进行分割,将其割成两个非零自然数,之后由另一个人选择留下两个数中的其中一个;之后由另一个人进行分割这个剩下的数,重复步骤……

    当一个人无法对数进行分割的时候游戏结束,另一个人获胜

    现在要你求出N次游戏的胜败

    每局由pb先进行分割,如果pb赢输出"pb wins" 如果zs赢输出"zs wins"

    注:双方都是绝顶聪明的

    输入输出格式

    输入格式:

     

    第一行一个数N,表示数据组数

    之后N行,每行一个数M,表示每局初始的数

     

    输出格式:

    共N行,每行一串字符 表示游戏结果

    输入输出样例

    输入样例#1: 复制
    5
    1
    3
    7
    20
    5
    输出样例#1: 复制
    zs wins
    zs wins
    zs wins
    pb wins
    zs wins
    思路:通过举例实践可以发现规律:当输入的数为偶数时pb胜利,反之为zs胜利。
    代码如下

    #include <iostream>
    using namespace std;
    int main()
    {
        int n,a[60];
        cin>>n;
        for(int i=1;i<=n;i++)//输入
        cin>>a[i];
        for(int i=1;i<=n;i++)
        {
             if(a[i]%2==0)
             cout<<"pb wins"<<endl;
             if(a[i]%2!=0)
             cout<<"zs wins"<<endl;//判断输赢注意此部分必须为数组,因为数组可以保存输入的值不然最后的答案会出错。
        }
        return 0;
    }

     
  • 相关阅读:
    90.子类调用父类同名方法总结
    89.子类调用父类同名属性和方法
    88.子类调用父类同名属性和方法
    87.子类重写父类的同名属性和方法
    86.多继承
    85.单继承
    84.继承的概念
    day09
    83.魔法方法__del__()
    82.魔法方法__str__()
  • 原文地址:https://www.cnblogs.com/2050792294-qq/p/9266017.html
Copyright © 2011-2022 走看看