C/C++角谷猜想 2020年12月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析

本文主要是介绍C/C++角谷猜想 2020年12月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

C/C++角谷猜想

一、题目要求

1、编程实现

2、输入输出

二、算法分析

三、程序编写

四、程序说明

五、运行结果

六、考点分析


C/C++角谷猜想

2020年12月 C/C++编程等级考试一级编程题

一、题目要求

1、编程实现

所谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘3加1,如果是偶数, 则除以2,得到的结果再按照上述规则重复处理,最终总能够得到1。如,假定初始整 数为5,计算过程分别为16、8、4、2、1。

程序要求输入一个整数,将经过处理得到1的过程输出来。

2、输入输出

输入描述:一个正整数 N(N <= 2, 000, 000)

输出描述:从输入整数到1的步骤,每一步为一行,每一部中描述计算过程。最后一行输出"End”。 如果输入为1,直接输出"End”。

输入样例:

5

输出样例:

5*3+1=16
16/2=8
8/2=4
4/2=2 
2/2=1
End	

二、算法分析

  1. 从给定题目的初步分析可以看出,首先需要从键盘获取一个整数
  2. 可以使用int类型进行变量的声明,用来保存键盘输入的数据
  3. 题目要求最终得到数字1,而输入的数字不同要执行的次数也无法确定,所以推荐使用while循环,条件为数字不等于1
  4. 然后可以通过if...else双分支语句对输入的数字进行处理,如果是奇数则为当前数字乘以3加1,并输出对应过程;否则为当前数字除以2并输出对应过程
  5. 最后当得到数字1,输出End即可

三、程序编写

#include<iostream> 
using namespace std;
int main()
{int n,t;cin>>n;while(n!=1){if(n % 2 == 1){t =  n * 3 + 1;cout<<n<<"*3+1="<<t<<endl;		}else{t = n / 2;cout<<n<<"/2="<<t<<endl;}n = t;}cout<<"End"<<endl;return 0;
}

四、程序说明

  1. 根据题目要求声明2个整形int变量(n是输入的数字,t是临时变量用来存放数字计算后的结果)
  2. 然后利用输入流对象cin,从键盘读取输入数字n的值
  3. 指定要当n!=1的时候就一直对n做如下处理:如果是奇数则为当前数字乘以3加1,并输出对应过程;否则为当前数字除以2并输出对应过程
  4. 最后得到的数字n为1,输出End结束

五、运行结果

55*3+1=16
16/2=8
8/2=4
4/2=2 
2/2=1
End	

六、考点分析

难度级别:简单,这题相对而言还是比较简单的,具体主要考查如下:

  1. 分析题目,找到解题思路
  2. 变量的声明和使用
  3. 输入流对象cin的使用,与流提取运算符 >>结合使用从键盘读取想要的数据
  4. while循环的使用,在不确定循环次数的时候推荐使用
  5. if...else双分支语句,条件满足执行一种处理,不满足执行另一种处理
  6. 输出流对象cout的使用,与流插入运算符 << 结合使用将对象输出到终端显示
  7. 充分掌握变量定义和使用、分支语句、循环语句和简单算法知识的使用及输入输出的用法

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

这篇关于C/C++角谷猜想 2020年12月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/305961

相关文章

网页解析 lxml 库--实战

lxml库使用流程 lxml 是 Python 的第三方解析库,完全使用 Python 语言编写,它对 XPath表达式提供了良好的支 持,因此能够了高效地解析 HTML/XML 文档。本节讲解如何通过 lxml 库解析 HTML 文档。 pip install lxml lxm| 库提供了一个 etree 模块,该模块专门用来解析 HTML/XML 文档,下面来介绍一下 lxml 库

【C++ Primer Plus习题】13.4

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream>#include "port.h"int main() {Port p1;Port p2("Abc", "Bcc", 30);std::cout <<

C++包装器

包装器 在 C++ 中,“包装器”通常指的是一种设计模式或编程技巧,用于封装其他代码或对象,使其更易于使用、管理或扩展。包装器的概念在编程中非常普遍,可以用于函数、类、库等多个方面。下面是几个常见的 “包装器” 类型: 1. 函数包装器 函数包装器用于封装一个或多个函数,使其接口更统一或更便于调用。例如,std::function 是一个通用的函数包装器,它可以存储任意可调用对象(函数、函数

2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题

题库来源:安全生产模拟考试一点通公众号小程序 2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题是由安全生产模拟考试一点通提供,流动式起重机司机证模拟考试题库是根据流动式起重机司机最新版教材,流动式起重机司机大纲整理而成(含2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题参考答案和部分工种参考解析),掌握本资料和学校方法,考试容易。流动式起重机司机考试技

C++11第三弹:lambda表达式 | 新的类功能 | 模板的可变参数

🌈个人主页: 南桥几晴秋 🌈C++专栏: 南桥谈C++ 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据库学习专栏: 南桥谈MySQL 🌈Qt学习专栏: 南桥谈Qt 🌈菜鸡代码练习: 练习随想记录 🌈git学习: 南桥谈Git 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈�

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

06 C++Lambda表达式

lambda表达式的定义 没有显式模版形参的lambda表达式 [捕获] 前属性 (形参列表) 说明符 异常 后属性 尾随类型 约束 {函数体} 有显式模版形参的lambda表达式 [捕获] <模版形参> 模版约束 前属性 (形参列表) 说明符 异常 后属性 尾随类型 约束 {函数体} 含义 捕获:包含零个或者多个捕获符的逗号分隔列表 模板形参:用于泛型lambda提供个模板形参的名

usaco 1.3 Mixing Milk (结构体排序 qsort) and hdu 2020(sort)

到了这题学会了结构体排序 于是回去修改了 1.2 milking cows 的算法~ 结构体排序核心: 1.结构体定义 struct Milk{int price;int milks;}milk[5000]; 2.自定义的比较函数,若返回值为正,qsort 函数判定a>b ;为负,a<b;为0,a==b; int milkcmp(const void *va,c