算法学习002-填数游戏 中小学算法思维学习 信奥算法解析 c++实现

目录

C++填数游戏

一、题目要求

1、编程实现

2、输入输出

二、算法分析

三、程序编写

四、程序说明

五、运行结果

六、考点分析

七、推荐资料


C++填数游戏

一、题目要求

1、编程实现

 在小学奥数中经常会看到一些填数字的游戏,如下图所示,其中每个汉字代表一个不同的数字,要求计算出这些汉字分别代表哪个数字

2、输入输出

输出描述:输出相应的算式或者汉字对应的数字

输出样例:

二、算法分析

  1. 从题目可以看出这是一个奥赛题,五个汉字对应五个数字
  2. 这个题目可以采用枚举的方式实现
  3. 每个汉字对应0-9中任意一个数,但是“小”和“程”字不能为0
  4. 然后枚举每个数字,直到最后的计算结果相匹配

三、程序编写

#include<bits/stdc++.h>
using namespace std;
int main()
{int n1,n2,n3,n4,n5;int num,res;for(n1=1;n1<=9;n1++){for(n2=0;n2<=9;n2++){for(n3=0;n3<=9;n3++){for(n4=0;n4<=9;n4++){for(n5=1;n5<=9;n5++){num = n1*10000 + n2*1000 + n3*100 + n4*10 + n5;res = n5 * 111111;if(num * n1 == res){cout<<"n1="<<n1<<" n2="<<n2<<" n3="<<n3<<" n4="<<n4<<" n5="<<n5;}}}}}}return 0;
}

四、程序说明

  1. 程序的主要部分是五个嵌套的for循环,分别用来生成五位数的每一位数字
  2. 环变量n1到n5分别代表最高位到最低位
  3. 循环的范围是从0到9,因为数字只能是0到9之间的整数
  4. 在每一轮循环中,程序将生成一个五位数num,通过将每一位数字乘以相应的权重得到
  5. 然后,程序计算num与最低位数乘以111111的乘积,并将结果存储在变量res中
  6. 接下来,程序使用if语句检查num与res是否相等。如果相等,则说明找到了满足条件的五位数,将其各个位数输出
  7. 最后,程序输出满足条件的五位数的各个位数的值
  8. 这个程序的时间复杂度为O(10^5),因为有五个嵌套的循环,每个循环的迭代次数都是10。虽然复杂度比较高,但是由于数字范围较小,所以运行时间还是比较快的

 本文作者:小兔子编程 作者首页:https://blog.csdn.net/frank2102

五、运行结果

n1=7 n2=9 n3=3 n4=6 n5=5

六、考点分析

难度级别:一般,这题相对而言比较典型的枚举算法思路,具体主要考查如下:

  1. 学会分析题目,找到解题思路
  2. 充分掌握变量的定义和使用
  3. 学会输入流对象cin的使用,从键盘读入相应的数据
  4. 学会for循环的使用,在确定循环次数的时候推荐使用学会
  5. 学会枚举算法的核心思想:逐一遍历每一种可能得到最后的答案
  6. 掌握输出流对象cout的使用,与流插入运算符 << 结合使用将对象输出到终端显示
  7. 学会分析题目,算法分析,将复杂问题模块化,简单化,从中找到相应的解题思路
  8. 充分掌握变量定义和使用、分支语句、循环语句和简单算法知识的使用及输入输出的用法

PS:方式方法有多种,小朋友们只要能够达到题目要求即可!

七、推荐资料

  • 所有考级比赛学习相关资料合集【推荐收藏】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/4820.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【PostgreSQL】pg触发器介绍

注: 本文为云贝教育 刘峰 原创&#xff0c;请尊重知识产权&#xff0c;转发请注明出处&#xff0c;不接受任何抄袭、演绎和未经注明出处的转载。 触发器是在对指定表执行指定更改操作&#xff08;SQL INSERT、UPDATE、DELETE 或 TRUNCATE 语句&#xff09;时自动运行的一组操作…

3个IE还不够?誉天大牛学员:我要学5个!

乔同学 誉天4HCIERHCA学员 2018年盛夏&#xff0c;在那个充满了炙热与躁动的青春里&#xff0c;因为考HCIA-R&S&#xff0c;我和誉天相遇了。我想&#xff0c;大概是从那个时候开始&#xff0c;命运的齿轮便发生了转动&#xff0c;为我打开了通往ICT的大门。 时至今日&…

vue2左侧菜单栏收缩展开功能

目录 1. Main.vue页面代码 a. 修改侧边栏属性 b. 修改头部导航栏 c. 定义我们的变量 d. collapse函数 2. Header.vue页面代码 3. Aside.vue页面代码 vue2左侧菜单栏收缩展开目前是非常常见的&#xff0c;我们在日常开发过程中经常会碰到。这一小节我们就详细了解一下这个…

如何使用PHPMyAdmin进行数据库备份

本周有一个客户&#xff0c;购买Hostease的虚拟主机&#xff0c;询问我们的在线客服&#xff0c;如何使用PHPMyAdmin进行数据库备份。我们为用户提供教程&#xff0c;用户很快完成了设置。在此&#xff0c;我们分享这个操作教程&#xff0c;希望可以对您有帮助。 它适用于安装P…

笔试刷题-Day10

牛客 一、DP30买卖股票的最好时机&#xff08;一&#xff09; 算法&#xff1a;虽然题目标了DP但是用贪心更快页更容易理解 import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main {public static void main(String[] args) {Sca…

动态规划-子序列问题1

文章目录 1. 最长递增子序列&#xff08;300&#xff09;2. 摆动序列&#xff08;376&#xff09;3. 最长递增子序列的个数&#xff08;673&#xff09;4. 最长数对链&#xff08;646&#xff09; 1. 最长递增子序列&#xff08;300&#xff09; 题目描述&#xff1a; 状态表…

气血足不足主要看看两个部位这些补气血的调理方法帮到您

气血足不足&#xff0c;关键看这两处&#xff1a;1、观耳识气血&#xff1a;红润饱满&#xff0c;弹性十足&#xff0c;这便是气血旺盛的直观表现。然而&#xff0c;随着年龄的增长&#xff0c;许多人会发现耳朵逐渐松弛、出现皱纹&#xff0c;这往往暗示着气血的流失。这里有个…

电路邱关源学习笔记——3.5回路电流法

1.回路电流法 以基本回路中沿回路连续流动的假想电流为未知量列写电路方程分析电路的方法。它适用于平面和非平面电路。 列写的方程 回路电流法是对独立回路列写KVL方程&#xff0c;方程数为&#xff1a;b-n1 注意&#xff1a;与支路电流法相比&#xff0c;方程数减少了n-1个…

机器人操作系统ROS2学习—编译工作空间colcon build报错问题

在ROS2中&#xff0c;工作空间创建完成后&#xff0c;会经常需要编译工作空间。在工作空间dev_ws 下打开一个终端&#xff0c;通过指令Colcon build来编译工作空间。 1、这个过程有可能会出现如下错误: "colconbuild:Duplicate package names not supported" 根据…

实现堆的各种基本运算的算法(数据结构)

以小堆为例&#xff0c;大堆就举一反三了。 堆的物理结构就是普通的数组&#xff0c;但是逻辑结构看成了一颗完全二叉树。 小堆&#xff0c;就是树的每一个父节点都小于他的孩子节点。如图中第一排的a与b。大堆&#xff0c;就是树的每一个父节点都大于他的孩子节点。如图中第…

DBA-现在应该刚刚入门吧

说来话长 在2023年以前&#xff0c;我的DBA生涯都是“孤独的”。成长路径除了毕业前的实习期有人带&#xff0c;后续几乎都是靠自学。如何自学&#xff0c;看视频、看文档、网上查阅资料、项目实战。 可能是学疏才浅 &#xff0c;一直都是在中小公司混&#xff0c;在中小公司通…

为什么本国货币的贬值会导致本国物价的上涨

本国货币贬值意味着其对外国货币的汇率下降&#xff0c;也就是说&#xff0c;同样数量的本国货币现在能兑换的外国货币减少了。这种情况下&#xff0c;本国货币的购买力相对于外国货币减弱了。本国货币贬值可能导致本国物价上涨的几个原因&#xff1a; 进口成本上升&#xff1a…

德思特手持式频谱分析仪加速公共无线事业的运行

一、公共无线事业中无线电的重要性 提起无线电&#xff0c;许多人或许觉得这是非常老旧的观念。实际上&#xff0c;无线电在我们的生活中占据着非常重要的地位。当前&#xff0c;无线电早已成为受众最广泛的大众媒介。据工业和信息化部资料显示&#xff0c;全球95%的人口都可以…

【MATLAB源码-第195期】基于matlab的OFDM,UFMC,FBMC三种通信系统误码率对比仿真。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 OFDM&#xff08;正交频分复用&#xff09;、UFMC&#xff08;通用频率分割复用&#xff09;、FBMC&#xff08;滤波器组多载波&#xff09;是目前无线通信领域中使用较广的几种多载波调制技术。随着无线通信技术的飞速发展&…

STM32学习和实践笔记(23):PWM输出的配置

PWM可以看作是定时器功能中其中一个子功能&#xff0c;配置步骤与前面定时器的方式类似。相关库函数也同样在tim.c里。 3.PWM输出配置步骤 &#xff08;1&#xff09;使能定时器及端口时钟&#xff0c;并设置引脚复用器映射。 a) RCC_APB1PeriphClockCmd(RCC_APB1Pe…

举个栗子!Tableau 技巧(272):学做曲线面积图(Sigmoid area charts)

曲线面积图&#xff08;Sigmoid area charts&#xff09;是区域图的一种创新变形&#xff0c;呈现数据随时间变化的情况&#xff0c;也可用于对数据总值趋势的洞察。 如何在 Tableau 中具体实现呢&#xff1f;今天的栗子&#xff0c;一睹为快吧&#xff01; 本期《举个栗子》…

HTML学习笔记(二)

1.HTML图像 图像标签&#xff08;<img>)和源属性&#xff08;src&#xff09; HTML中&#xff0c;图像由<img>标签来定义&#xff0c;<img>是空标签&#xff0c;只包含属性&#xff0c;没有闭合标签。在页面上显示图像需要使用源属性&#xff08;src),src是指…

机器人系统ros2-开发实践03-监听节点的参数变化(C++)

背景&#xff1a; 通常&#xff0c;节点需要响应其自身参数或另一个节点参数的更改。 ParameterEventHandler 类可以轻松侦听参数更改&#xff0c;以便您的代码可以响应它们。本教程将向您展示如何使用 ParameterEventHandler 类的 C 版本来监视节点自身参数的更改以及另一个节…

Linux系统安全与应用【一】

目录 1.账号安全控制 1.1 系统账号清理 1.2 密码安全控制 1.3 命令历史限制 1.4 命令总结 2.系统引导和登录控制 2.1 使用su命令切换用户 2.2 限制使用su命令的用户 3.可插拔式认证模块PAM 3.1 linux中的PAM安全认证 3.2 PAM认证原理​编辑 3.3 PAM认证的构成 3.4 P…

itables, Python 大型数据集显示工具

目录 前言 安装 特性 基本功能 显示表格 排序功能 搜索功能 分页显示 高级功能 自定义列的显示格式 高级搜索功能 实现数据的动态更新 集成外部JavaScript库 总结 前言 iTables库是Python中一个强大的工具&#xff0c;专门用于在Jupyter Notebook和其他IPython环境中以交…