当前位置: 首页 > wzjs >正文

什么是网站开发设计与实现陕西疫情最新消息

什么是网站开发设计与实现,陕西疫情最新消息,360官网首页入口,网页设计与制作课程标准化项目申报书题目:奇怪的捐赠 题目来源:1.奇怪的捐赠 - 蓝桥云课 题目描述 需要将 100 万(1,000,000)正好分成若干个 7 的次方形式的数(如 7^01, 7^17, 7^249 等),且每种金额(即每个 7 的次方…

题目:奇怪的捐赠

题目来源:1.奇怪的捐赠 - 蓝桥云课

题目描述

需要将 100 万(1,000,000)正好分成若干个 7 的次方形式的数(如 7^0=1, 7^1=7, 7^2=49 等),且每种金额(即每个 7 的次方)的使用次数不能超过 5 份。

解题思路

  1. 列出所有小于 100 万的 7 的次方

    • 计算 7 的各次方:7^0 = 1, 7^1 = 7, 7^2 = 49, 7^3 = 343, 7^4 = 2401, 7^5 = 16807, 7^6 = 117649, 7^7 = 823543。
    • 注意 7^8 = 5764801 已超过 100 万,因此只取 7^0 到 7^7。
  2. 贪心策略

    • 从最大的 7 的次方(823543)开始,尽可能多地使用,但不超过 5 次。
    • 计算剩余金额,再对次大的 7 的次方重复此过程,直到剩余金额为 0 或无法继续分解。
  3. 实现步骤

    • 用数组存储 7 的次方。
    • 从大到小遍历数组,计算当前金额能用几次该次方(不超过 5 次)。
    • 更新剩余金额并记录使用的总份数。
    • 最后检查是否正好分解为 100 万。

代码实现

#include <iostream>
using namespace std;int main() {ios::sync_with_stdio(0);  // 加速输入输出cin.tie(0); cout.tie(0);int sum = 0;           // 记录总份数int num = 1000000;     // 初始金额 100 万// 7 的次方数组,从 7^0 到 7^7int ter[] = {1, 7, 49, 343, 2401, 16807, 117649, 823543}; // 从最大的 7 的次方(索引 7)到最小的(索引 0)for (int i = 7; i >= 0; i--) { int temp = num / ter[i];  // 计算当前金额能用几次 ter[i]if (temp > 5) {           // 限制最多使用 5 次temp = 5;}sum += temp;              // 累加使用的份数num -= temp * ter[i];     // 更新剩余金额}// 检查是否正好分解完成if (num == 0) {cout << sum << endl;      // 输出总份数} else {cout << "无法用给定条件表示 1000000。" << endl;}return 0;
}

运行结果分析

计算过程:

  1. num = 1000000,ter[7] = 823543:
    • 1000000 / 823543 = 1 < 5,取 1 次,sum = 1,num = 1000000 - 823543 = 176457。
  2. num = 176457,ter[6] = 117649:
    • 176457 / 117649 = 1 < 5,取 1 次,sum = 2,num = 176457 - 117649 = 58808。
  3. num = 58808,ter[5] = 16807:
    • 58808 / 16807 = 3 < 5,取 3 次,sum = 5,num = 58808 - 3 * 16807 = 8387。
  4. num = 8387,ter[4] = 2401:
    • 8387 / 2401 = 3 < 5,取 3 次,sum = 8,num = 8387 - 3 * 2401 = 1184。
  5. num = 1184,ter[3] = 343:
    • 1184 / 343 = 3 < 5,取 3 次,sum = 11,num = 1184 - 3 * 343 = 155。
  6. num = 155,ter[2] = 49:
    • 155 / 49 = 3 < 5,取 3 次,sum = 14,num = 155 - 3 * 49 = 8。
  7. num = 8,ter[1] = 7:
    • 8 / 7 = 1 < 5,取 1 次,sum = 15,num = 8 - 7 = 1。
  8. num = 1,ter[0] = 1:
    • 1 / 1 = 1 < 5,取 1 次,sum = 16,num = 1 - 1 = 0。

输出:

  • num = 0,说明 100 万被成功分解。
  • sum = 16,即需要 16 份。

最终输出:16

注意事项

  1. 正确性验证

    • 823543 * 1 + 117649 * 1 + 16807 * 3 + 2401 * 3 + 343 * 3 + 49 * 3 + 7 * 1 + 1 * 1 = 1,000,000。
    • 每项使用次数均不超过 5,符合条件。
  2. 边界情况

    • 如果题目金额不是 100 万,需检查是否能被 7 的次方分解且满足限制条件。
  3. 优化空间

    • 当前代码已足够高效,时间复杂度为 O(1),因为数组长度固定。
  4. 注意 7 0 7^0 70 也算 7 的若干次方,主包这里没注意成蠢货了。

http://www.dtcms.com/wzjs/518186.html

相关文章:

  • 上地网站建设短视频精准获客
  • 网站开发流程相关知识11月将现新冠感染高峰
  • 新手做网站设计seo公司资源
  • 带有数据库的网站模板软文时光发稿平台
  • 做网站公司 营销如何做一个自己的网站呢
  • 哪家的网站效果好谷歌官方app下载
  • 陕西榆林市信息网站建设公司宁波免费seo排名优化
  • 昆明制作网站品牌词优化
  • 建行官网个人银行山西seo推广
  • 网站备案多久做一次保定seo排名外包
  • 做网站 注册那类的商标广告营销策略有哪些
  • 企业网站下周网络营销课程个人总结
  • 门户网站开发全网推广网站
  • 微信网站建设费用郑州手机网站建设
  • 网站建设站网站优化 福州
  • 南昌行业网站建设怎么推广淘宝店铺
  • 装企营销网站建设百度开户资质
  • 西双版纳傣族自治州医院宁波seo排名优化哪家好
  • 河南省建设监理协会官方网站怎么做电商创业
  • 学做视频的网站有哪些内容营销渠道名词解释
  • 赣州景文网络科技有限公司常州seo招聘
  • 效果好企业营销型网站建设百度手机版下载
  • 如何自建设网站百度seo优化培训
  • 网站上的在线答题是怎么做的网上销售都有哪些平台
  • 建立自己的网站可以采用的方式有seo营销外包公司
  • 做学生阅读分析的网站杭州百度seo
  • 互联网时代如何赚钱北京网站优化页面
  • 北安网站建设网站搭建流程
  • 上海做什么赚钱快seo实战密码第四版pdf
  • 北京市住房建设委员会网站google下载安卓版