C/C++输出硬币翻转 2021年6月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析

目录

C/C++硬币翻转

一、题目要求

1、编程实现

2、输入输出

二、算法分析

三、程序编写

四、程序说明

五、运行结果

六、考点分析


C/C++硬币翻转

2021年6月 C/C++编程等级考试一级编程题

一、题目要求

1、编程实现

假设有N个硬币(N为不大于5000的正整数),从1到N按顺序依次编号,初始时全部处于正面向上的状态;有M个人(M为不大于N的正整数)也从1到M依次编号。

第一个人(1号)将硬币全部翻转一次,第二个人(2号)将编号为2的倍数的硬币翻转一次,第三个人(3号)将编号为3的倍数的硬币翻转一次。依照编号递增顺序,以后的人都和3号一样,将凡是自己编号倍数的硬币翻转一次。

请问:当第M个人操作之后,哪些硬币是正面向上的,按从小到大输出其编号,以空格分开。

时间限制:10000

内存限制:65536

2、输入输出

输入描述:输入正整数N和M,以单个空格隔开。

输出描述:顺次输出正面向上的硬币的编号,其间用空格间隔。

输入样例:

10 10

输出样例:

2 3 5 6 7 8 10

二、算法分析

  1. 题目相对下朋友们来说有一定的难度,难在如何让每个人对符合要求的硬币进行翻转操作
  2. 由于人和硬币都是有多个,量较大,所以采用所学的一维数组来完成是比较好的方案
  3. 在确定采用数组后需要先设定数组的初值用1表示正面朝上,0表示反面朝上
  4. 然后最主要的就是对硬币的操作,应该是每个人都能对所有的硬币,只是要符合自己编号的硬币进行反向操作,所以这里可以使用嵌套for循环实现比较方便
  5. 外层循环为人,内层循环为硬币,接着就可以将每个硬币进行分析判断是否是人的编号倍数,如果是就进行反向操作即可
  6. 最后输出数组中数字为1的编号就是硬币正面朝上的编号

三、程序编写

#include<iostream> 
using namespace std;
int a[5000];
int main()
{int n,m;cin>>n>>m;for(int i=1;i<=n;i++){a[i] = 1;}for(int i=1;i<=m;i++)//i表示人 {for(int j=i;j<=n;j++)//j表示硬币 {if(j%i == 0){a[j] = !a[j];}}}//输出符合要求的 for(int i=1;i<=n;i++){if(a[i] == 1){cout<<i<<" ";}}return 0;
}

四、程序说明

  1. 首先需要导入输入输出流头文件
  2. 接着再次导入输入输出流格式控制头文件
  3. 然后是引入std命名空间中的所有成员到当前的程序中,这样在当前的程序中就可以直接使用 std 命名空间中的所有成员,而不需要使用的时候在成员前面加上(std::)前缀
  4. 声明一个一维整型数组a,维度大小为5000
  5. 接着声明程序的入口,也就是主函数(主函数在一个程序中只允许出现一次)
  6. 根据题目要求声明一个整形变量(n表示硬币数,m表示人数)
  7. 接着对a数组进行初始化(用for循环),用1表示正面朝上,0表示背面朝上
  8. 使用嵌套for循环(外层人,内层硬币)逐个遍历
  9. 在利用if条件判断语句,判断当前的硬币是否是人的倍数,如果是就对数组元素进行取反操作
  10. 最后再次利用for循环遍历整个数组,结合if条件判断语句判断当前元素是否为1
  11. 如果是利用输出流对象cout,输出对应的编号即可
  12. 最后返回0,程序结束

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

五、运行结果

10 102 3 5 6 7 8 10

六、考点分析

难度级别:中等,这题相对而言还是有一点难度,具体主要考查如下:

  1. 学会题目分析,算法分析,找到解题思路
  2. 充分掌握变量的定义和使用
  3. 学会输入流对象 in的使用,从键盘读入相应的数据
  4. 学会数组的声明、数组的输入及数组的输出
  5. 学会for循环以及嵌套循环的使用,在确定循环次数的时候推荐使用学会
  6. 学会if条件判断语句的使用,满足一定条件才能执行后面的语句
  7. 掌握输出流对象cout的使用,与流插入运算符 << 结合使用将对象输出到终端显示
  8. 充分掌握变量定义和使用、数组操作、循环语句和简单算法知识的使用及输入输出的用法

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

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

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

相关文章

js 加解密 jsencrypt(非对称加密 rsa)

这是一个非对称加密的库&#xff0c;可以进行 rsa 加解密 使用方法 安装 npm install jsencrypt --save jsencrypt rsa 加解密 let rsaStr "这就是一个RSA加密的测试";let jsencryptObj new jsencrypt();jsencryptObj.getKey(); //这个方法用来生成一个密钥对…

从未使用过的 Python 特性

1. 按步长取数 知识点: list[start:stop:step] start: 开始索引, 默认为0 end: 结束索引, 默认为列表长度 step: 步长, 默认为1, 可以为负数, 如果为负数, 则为倒序. data [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] print(data[::2]) # [1, 3, 5, 7, 9] print(data[::-1]) # [10, 9,…

ElasticSearch7.x - HTTP 操作 - 查询文档操作

查询索引下的所有文档 http://192.168.254.101:9200/shopping/_search 条件查询 请求路径上添加条件:http://192.168.254.101:9200/shopping/_search?q=category:小米 请求体上添加条件:http://192.168.254.101:9200/shopping/_search 请求体内容 {"query" :{&qu…

带你走进Cflow (三)·控制符号类型分析

目录 ​编辑 1、控制符号类型 1.1 语法类 1.2 符号别名 1.3 GCC 初始化 1、控制符号类型 有人也许注意到了输出中奇怪的现象&#xff1a;函数_exit 丢失了&#xff0c;虽然它在源文件中被printdir 调用了两次。这是因为默认情况下 cflow 忽略所有的一下划线开头的符号…

『CV学习笔记』文本识别算法CRNNSVTR介绍

文本识别算法CRNN&SVTR介绍 文章目录 一. 文本识别1.1. 文本识别方法介绍1.1.1. 规则文本识别1.1.2. 不规则文本识别1.2. CRNN算法原理1.2.1. CRNN基本网络结构1.3. SVTR算法原理二. 参考文献一. 文本识别 文本识别是OCR(Optical Character Recognition)的一个子任务,其…

redis-cli 连接 sentinel架构的redis服务

之前一直用gui连接redis&#xff0c;今天在服务器连接发现redis-cli无法直接连接到redis-sentinel服务器&#xff0c;研究后发现多了几个步骤&#xff0c;如下&#xff1a; 假设有三个redis节点127.0.0.1,127.0.0.2,127.0.0.3,端口为9696先连接任意一个节点: redis-cli -h 12…

启动Hbase出现报错

报错信息&#xff1a;slave1:head: cannot open/usr/local/hbase-2.3.1/bin/../logs/hbasewanggiqi-regionserver-slavel.out’ for reading: No such file or direslave2: head: cannot open/usr/local/hbase-2.3.1/bin/../logs/hbasewangqiqi-regionserver-slave2.out’ for …

docker-compose安装es以及ik分词同义词插件

目录 1 前言 2 集成利器Docker 2.1 Docker环境安装 2.1.1 环境检查 2.1.2 在线安装 2.1.3 离线安装 2.2 Docker-Compose的安装 2.2.1 概念简介 2.2.2 安装步骤 2.2.2.1 二进制文件安装 2.2.2.2 离线安装 2.2.2.3 yum安装 3 一键安装ES及Kibana 3.1 yml文件的编写…

Linux imu6ull驱动- led

一、GPIO模块结构 开始来啃手册了&#xff0c;打开我们的imx6ull手册。本章我们编写的是GPIO的&#xff0c;打开手册的第28章&#xff0c;这一章就有关于IMX6ULL 的 GPIO 模块结构。 mx6ull一共有5 组 GPIO&#xff08;GPIO1&#xff5e;GPIO5&#xff09; GPIO1 有 32 个引脚&…

C语言之文件操作(详解版)

不知不觉我们已经学到C语言的文件操作部分了&#xff0c;这部分内容其实很有意思&#xff0c;因为它可以直接把我们代码中的数据写入硬盘&#xff0c;而不是我们关掉这个程序&#xff0c;代码就没有了&#xff0c;让我们开始学习吧&#xff01; 目录 1.为什么使用文件 2.什么…

前端Vue 结合xlxs库实现解析excel文件,并动态组装表头!

目录 1.前言2.数据定义3. 页面布局4.上传之前的事件5.解析excel文件,并组装系统表头与excel表头的对应关系6.下拉框改变事件 1.前言 最近有一个需求&#xff0c;就是用户可以任意导入一个自定义的excel文件&#xff0c;让用户可以自己选择&#xff0c;组装表头的对应关系&…

Adobe ME下载、Media Encoder下载

Media Encoder 2021 是一款可以帮助Adobepremiere pro和Adobe After Effects的用户使用集成视频编码器进行创作的视频和音频编码软件。Media Encoder 2021 mac新版本中针对上一个版本进行了多方面的改进与优化&#xff0c;提升了软件的性能与支持文件格式提升&#xff0c;有需要…

C++:list?自己模拟实现!

目录 1.list的模拟实现 1.1 成员变量和节点 1.2 迭代器实现 1.2.1 非const的迭代器 1.2.2 const的迭代器 1.2.3 一个模板实现 const 与 非const 迭代器 1.3 增删改查的实现 1.4 拷贝构造函数&#xff0c;析构函数与赋值运算符重载 1.5 泛型编程实现打印 2. list 反…

从零开始搭建React+TypeScript+webpack开发环境-基于lerna的webpack项目工程化改造

项目背景 在实际项目中&#xff0c;我们的前端项目往往是一个大型的Webpack项目&#xff0c;结构较为复杂。项目根目录下包含了各种配置文件、源代码、以及静态资源&#xff0c;整体布局相对扁平。Webpack的配置文件分散在不同的部分&#xff0c;包括入口文件、输出目录、加载…

ubuntu使用Parted GPT 创建大于2TB的的分区

问题 加购了一个4TB的ssd用于装载数据&#xff0c;使用fdisk挂载时候遇到一下warning&#xff1a; $ sudo fdisk /dev/sdbWelcome to fdisk (util-linux 2.34). Changes will remain in memory only, until you decide to write them. Be careful before using the write com…

文本生成高精准3D模型,北京智源AI研究院等出品—3D-GPT

北京智源AI研究院、牛津大学、澳大利亚国立大学联合发布了一项研究—3D-GPT&#xff0c;通过文本问答方式就能创建高精准3D模型。 据悉&#xff0c;3D-GPT使用了大语言模型的多任务推理能力,通过任务调度代理、概念化代理和建模代理三大模块&#xff0c;简化了3D建模的开发流程…

Vue3 + ts+ elementUi 实现后台数据渲染到下拉框选项中,滑动加载更多数据效果

前言 功能需求&#xff1a;下拉框中分页加载后端接口返回的人员数据&#xff0c;实现滑动加载更多数据效果&#xff0c;并且可以手动搜索定位数据&#xff0c;此项目使用Vue3 ts elementUi 实现 实现 把此分页滑动加载数据功能封装成vue中的hooks&#xff0c;文件命名为use…

C++ | 继承和多态

目录 继承 继承的概念及用法 继承的作用域 向上转型和向下转型 继承过程中的默认生成函数 菱形继承及其解决方案 - 虚继承 虚继承的原理 - 虚基类表 继承和组合 多态 虚函数 多态的定义及使用 纯虚函数与抽象类 多态的原理 小点补充 虚表的位置 父类指针new一个…

django 批量 serializers listserializers

Django drf 序列化器 序列化器 扩展serializers的有用性是我们想要解决的问题。但是&#xff0c;这不是一个微不足道的问题&#xff0c;而是需要一些严肃的设计工作。— Russell Keith-Magee, Django用户组 序列化器允许把像查询集和模型实例这样的复杂数据转换为可以轻松渲染…

conda修改虚拟环境名称

conda 修改虚拟环境名称 conda 不能直接更改名称&#xff0c;但是可以通过克隆环境解决 新建环境&#xff08;克隆旧环境&#xff09; conda create --name 新环境名 --clone 旧环境名 删除原环境 conda remove --name 旧环境名 --all 查看现有环境 conda env list conda i…