(蓝桥杯每日一题)游戏最优解及求二进制中有多少1

问题描述:

小 A和小 B 两个人在海边找到了 n 个石子,准备开始进行一些游戏,具体规则如下:小 B首先将 n 个石子分成若干堆,接下来从小 A开始小 A和小 B轮流取石子,每次可以任选一堆石子取走任意个,不可不取,没石子可取的输。问在最优策略的情况下,小 A和小 B到底谁能赢得游

问题解析:

这个游戏可以通过奇偶性来判断最后谁会赢得游戏。

假设初始时有n个石子。如果n是偶数,小A总是可以赢得游戏。因为无论小B如何分堆,小A都可以以相同的方式去取,最后一定会是小B无法取石子。

如果n是奇数,小B可以通过一些策略获胜。小B可以保证每次小A取完石子后,剩余石子的堆数和数量都是奇数。这样无论小A怎么取,最后都会留下一个石子给小B。

通过这些信息,我们可以得出结论:当初始石子数是偶数时,小A胜;当初始石子数是奇数时,小B胜。

代码如下:

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        int n = scan.nextInt();
        System.out.println(n % 2 == 0 ? "B" : "A");
        scan.close();
    }
}

问题2:

小蓝刚学习完二进制知识,所以现在他对任何数字的二进制都特别感兴趣。恰好即将迎来 2024年,他想知道 2024 的二进制中几个 1?
请你帮忙解决这个问题。

问题解析:

通过十进制转二进制的除2取余方法。

代码如下:

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        int i=2024;
        int count=0;
        int a=0;
        while(i!=0)
        {
            a=i%2;
            i=i/2;
            if(a==1)
            {
              count++;
            }
        }
        
          System.out.println(count);
        scan.close();
    }
}

敲代码中使用好的数学方法更能事半功倍!

相关推荐

  1. 每日:转圈游戏(快速幂)

    2024-02-01 20:42:01       35 阅读
  2. 每日(Dijkstra短路算法)

    2024-02-01 20:42:01       44 阅读
  3. 每日】4.1 奶酪

    2024-02-01 20:42:01       35 阅读
  4. 每日(python)

    2024-02-01 20:42:01       61 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-01 20:42:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-01 20:42:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-01 20:42:01       82 阅读
  4. Python语言-面向对象

    2024-02-01 20:42:01       91 阅读

热门阅读

  1. M1芯片MAC 安装MySQL、Nacos遇到的问题

    2024-02-01 20:42:01       62 阅读
  2. 【SpringBoot】如何在 Utils 工具类中注入 Bean

    2024-02-01 20:42:01       50 阅读
  3. ffmpeg 从视频文件抓取图片 (帧)的用法

    2024-02-01 20:42:01       51 阅读
  4. LeetCode //C - 2336. Smallest Number in Infinite Set

    2024-02-01 20:42:01       48 阅读
  5. XSS基础知识整理

    2024-02-01 20:42:01       47 阅读
  6. 2024.2.1

    2024-02-01 20:42:01       52 阅读
  7. u-boot FIT image介绍

    2024-02-01 20:42:01       47 阅读