蓝桥每日打卡

news/2025/2/24 10:43:21

#蓝桥#JAVA#奇怪的捐赠

题目描述

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

地产大亨 Q 先生临终的遗愿是:拿出100万元给 X 社区的居民抽奖,以稍慰藉心中愧疚。

麻烦的是,他有个很奇怪的要求:

  1. 100万元必须被正好分成若干份(不能剩余)。每份必须是 7 的若干次方元。比如:1 元, 7 元, 49 元,343 元,...

  2. 相同金额的份数不能超过 5份。

  3. 在满足上述要求的情况下,分成的份数越多越好!

请你帮忙计算一下,最多可以分为多少份?

java">public class StrangeDonation {
    public static void main(String[] args) {
        // 步骤 1: 初始化变量
        int money = 1000000;
        int totalParts = 0;

        // 步骤 2: 进行 7 进制转换并累加各位数字
        while (money > 0) {
            // 步骤 2.1: 计算当前位的数字
            int remainder = money % 7;
            // 步骤 2.2: 累加当前位数字到总份数
            totalParts += remainder;
            // 步骤 2.3: 更新 money 的值,去掉已处理的最低位
            money /= 7;
        }

        // 步骤 3: 输出结果
        System.out.println(totalParts);
    }
}
步骤 1: 初始化变量
java">int money = 1000000;
int totalParts = 0;
  • money:这个变量用于存储初始的捐赠金额,即 100 万元。在后续的计算过程中,我们会不断对这个值进行处理,逐步将其转换为 7 进制表示。
  • totalParts:用于记录最终分成的份数。初始时将其赋值为 0,在后续计算 7 进制各位数字之和的过程中,会不断将各位数字累加到这个变量中。
步骤 2: 进行 7 进制转换并累加各位数字
java">while (money > 0) {
    int remainder = money % 7;
    totalParts += remainder;
    money /= 7;
}

这是整个算法的核心部分,使用 while 循环来完成 100 万到 7 进制的转换,并同时累加各位数字。

步骤 2.1: 计算当前位的数字
java">int remainder = money % 7;
  • 在 7 进制转换中,求一个数除以 7 的余数可以得到该数 7 进制表示中的最低位数字。例如,对于十进制数 10,,这就表示 10 转换为 7 进制时最低位是 3。在每次循环中,通过 money % 7 计算得到当前 money 值对应的 7 进制最低位数字,并将其存储在 remainder 变量中。
步骤 2.2: 累加当前位数字到总份数
java">totalParts += remainder;
  • 由于我们的目标是计算 7 进制数各位数字之和,所以在得到当前位的数字(存储在 remainder 中)后,将其累加到 totalParts 变量中。这样随着循环的进行,totalParts 就会不断累加 7 进制数的每一位数字。
步骤 2.3: 更新 money 的值,去掉已处理的最低位
java">money /= 7;
  • 在完成当前最低位数字的处理后,需要将 money 的值更新,去掉已经处理过的最低位,以便继续处理更高位。例如,对于十进制数 10,在处理完最低位(通过 10 % 7 得到 3)后,执行 10 / 7 = 1,这样就去掉了最低位,接下来可以继续处理更高位。在循环中,通过 money /= 7 实现这个操作,不断缩小 money 的值,直到其变为 0,表示已经完成了整个 7 进制的转换。
步骤 3: 输出结果
java">System.out.println(totalParts);
  • 当 money 变为 0 时,while 循环结束,此时 totalParts 中存储的就是 100 万转换为 7 进制后各位数字之和,也就是满足题目条件下的最大份数。最后使用 System.out.println 方法将这个结果输出。

http://www.niftyadmin.cn/n/5864232.html

相关文章

小迪安全23-php后台模块

cookie技术 cookie就是身份验证表示,通过cookie好区分每个用户的个人数据和权限,第一次登陆之后正常的网站都会赋予一个cookie 写写一个后台界面,直接让ai去写就可以 然后自己需要的提交方式,和表单值自己修改即可 生成cookie的…

sklearn机器学习 Python代码通用模板

以下是一个使用 scikit-learn(sklearn)进行机器学习的通用 Python 代码模板。这个模板涵盖了数据加载、预处理、模型训练、评估和预测的基本流程,适用于常见的机器学习任务。 python # 导入必要的库 import numpy as np import pandas as …

Ubuntu编译jetlinks-ui-vue

安装node 需要18.14.0以上 LINUX安装node/nodejs-CSDN博客 启动jetlinks-community Ubuntu安装geteck/jetlinks实战:源码启动-CSDN博客 下载 git clone https://gitee.com/jetlinks/jetlinks-ui-vue 准备 yarn 编译 # npm run build yarn build启动 yarn dev 测试

WebXR教学 01 基础介绍

什么是WebXR? 定义 XR VR AR Web上使用XR技术的API WebXR 是一组用于在 Web 浏览器中实现虚拟现实(VR)和增强现实(AR)应用的技术标准。它由 W3C 的 Immersive Web 工作组开发,旨在提供跨设备的沉浸式体验…

【算法系列】荷兰国旗问题:三指针法原地排序

一、题目(leetcode75 颜色分类 --三分数组) 二、思路 算法核心:三指针分治策略 该问题被称为“荷兰国旗问题”(Dutch National Flag Problem),由计算机科学家Edsger Dijkstra提出。其核心思想是通过三个指针将数组划分为三个区…

Android 技术栈

这里有必要学一下。 Android 串口通信-CSDN博客

LangChain大模型应用开发:构建Agent智能体

介绍 大家好,博主又来给大家分享知识了。今天要给大家分享的内容是使用LangChain进行大模型应用开发中的构建Agent智能体。 在LangChain中,Agent智能体是一种能够根据输入的任务或问题,动态地决定使用哪些工具(如搜索引擎、数据库查询等)来…

深度学习(3)-TensorFlow入门(梯度带)

TensorFlow看起来很像NumPy。但是NumPy无法做到的是,检索任意可微表达式相对于其输入的梯度。你只需要创建一个GradientTape作用域,对一个或多个输入张量做一些计算,然后就可以检索计算结果相对于输入的梯度,如代码清单3-10所示。…