蓝桥每日打卡

devtools/2025/2/24 7:02:54/

#蓝桥#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.ppmy.cn/devtools/161308.html

相关文章

51单片机-串口通信编程

串行口工作之前,应对其进行初始化,主要是设置产生波特率的定时器1、串行口控制盒中断控制。具体步骤如下: 确定T1的工作方式(编程TMOD寄存器)计算T1的初值,装载TH1\TL1启动T1(编程TCON中的TR1位…

Oracle中补全时间的处理

在实际数据处理的过程中,存在日期不连续的问题,可能会导致数据传到前后端出现异常,为了避免这种问题,通常会从数据端进行日期不全的处理: 以下为补全年份的案例: with x as (select 开始年份 (…

easyexcel和poi同时存在版本问题,使用easyexcel导出excel设置日期格式

这两天在使用easyexcel导出excel的时候日期格式全都是字符串导致导出的excel列无法筛选 后来调整了一下终于弄好了,看一下最终效果 这里涉及到easyexcel和poi版本冲突的问题,一直没搞定,最后狠下心来把所有的都升级到了最新版,然…

Effective Objective-C 2.0 读书笔记——协议和分类

Effective Objective-C 2.0 读书笔记——协议和分类 文章目录 Effective Objective-C 2.0 读书笔记——协议和分类在分类中添加属性使用 “class-continuation分类” 隐藏实现细节通过协议提供匿名对象 在分类中添加属性 尽管从技术上说,分类里也可以声明属性&…

INTJ在决策影响力下降时如何调整策略

嗯,用户问的是INTJ在决策影响力下降时如何调整策略。首先,我需要回顾之前的对话,用户之前已经询问过INTJ的优缺点、转换领导与隐退的机制,现在这个问题可能是在之前基础上的深入探讨。根据提供的参考内容,关键点在于Ni…

小米路由器 AX3000T 降级后无法正常使用,解决办法

问题描述 买了个 AX3000T 路由器,想安装 OpenWRT 或者 安装 Clash 使用,看教程说是需要降级到 v1.0.47 版本。 结果刷机之后路由器无法打开了,一直黄灯亮,中间灭一下,又是黄灯长亮,没有 WIFI 没有连接。以…

微软发布Majorana 1芯片,开启量子计算新路径

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

C++ 设计模式 - 策略模式

一:概述 策略模式是一种行为设计模式,来源于《设计模式:可复用面向对象软件的基础》一书。它定义了一组算法,并将它们封装成独立的对象。策略模式在标准模板库(STL)中被广泛使用。 二:策略模式…