2020 年 12 月青少年软编等考 C 语言一级真题解析

目录

  • T1. 字符三角形
    • 思路分析
  • T2. 计算 (a + b) × (c - b) 的值
  • T3. 晶晶赴约会
    • 思路分析
  • T4. 角谷猜想
    • 思路分析
  • T5. 求满足条件的 3 位数
    • 思路分析

T1. 字符三角形

给定一个字符,用它构造一个底边长 5 5 5 个字符,高 3 3 3 个字符的等腰字符三角形。

时间限制:1 s
内存限制:64 MB

  • 输入
    输入只有一行,包含一个字符。
  • 输出
    该字符构成的等腰三角形,底边长 5 5 5 个字符,高 3 3 3 个字符。
  • 样例输入
    *
    
  • 样例输出
      ****
    *****
    

思路分析

此题考查字符的输入输出,属于入门题。按照样例输出的格式编写代码输出即可,注意第 1 1 1 行和第 2 2 2 行前面的空格。

/** Name: T1.cpp* Problem: 字符三角形* Author: Teacher Gao.* Date&Time: 2024/04/06 09:30*/#include <iostream>using namespace std;int main()
{char ch;cin >> ch;cout << "  " << ch << endl;cout << " " << ch << ch << ch << endl;cout << ch << ch << ch << ch << ch << endl;return 0;
}

T2. 计算 (a + b) × (c - b) 的值

此题为 2023 年 9 月一级第二题原题,见 2023 年 9 月青少年软编等考 C 语言一级真题解析中的 T2。

T3. 晶晶赴约会

晶晶的朋友贝贝约晶晶下周一起去看展览,但晶晶每周的 1 1 1 3 3 3 5 5 5 有课必须上课,请帮晶晶判断她能否接受贝贝的邀请,如果能则输出 YES;如果不能则输出 NO。注意 YESNO 都是大写字母!

时间限制:1 s
内存限制:64 MB

  • 输入
    输入有一行,贝贝邀请晶晶去看展览的日期,用数字 1 1 1 7 7 7 表示从星期一到星期日。
  • 输出
    输出有一行,如果晶晶可以接受贝贝的邀请,输出 YES;否则,输出 NO
  • 样例输入
    2
    
  • 样例输出
    YES
    

思路分析

此题考查分支结构与逻辑运算,属于入门题。

此题只需要判断输入的数值是否为 1 1 1 3 3 3 5 5 5 中的一个,若是则输出 NO,否则输出 YES 即可。

/** Name: T3.cpp* Problem: 晶晶赴约会* Author: Teacher Gao.* Date&Time: 2024/04/07 12:23*/#include <iostream>using namespace std;int main()
{int x;cin >> x;if (x == 1 || x == 3 || x == 5) {cout << "NO" << endl;}else {cout << "YES" << endl;}return 0;
}

T4. 角谷猜想

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

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

时间限制:1 s
内存限制:64 MB

  • 输入
    一个正整数 n n n n ≤ 2000000 n \le 2000000 n2000000
  • 输出
    从输入整数到 1 1 1 的步骤,每一步为一行,每一步中描述计算过程。最后一行输出 End。如果输入为 1 1 1,直接输出 End
  • 样例输入
    5
    
  • 样例输出
    5*3+1=16
    16/2=8
    8/2=4
    4/2=2
    2/2=1
    End
    

思路分析

此题考察循环结构与分支结构,属于入门题。

此题只需要按照题意进行模拟即可。由于不知道循环次数,因此选用 while 语句较为恰当,循环条件写为 n > 1,在循环体内判断 n n n 的奇偶性,并根据奇偶性进行相应的计算、赋值更新,以及输出相应步骤。注意循环结束后需要输出 End

/** Name: T4.cpp* Problem: 角谷猜想* Author: Teacher Gao.* Date&Time: 2024/04/07 13:56*/#include <iostream>using namespace std;int main()
{int n;cin >> n;while (n > 1) {if (n % 2) {cout << n << "*3+1=" << n*3 + 1 << endl;n = n*3 + 1;}else {cout << n << "/2=" << n / 2 << endl;n = n / 2;}}cout << "End" << endl;return 0;
}

T5. 求满足条件的 3 位数

编写程序,按从小到大的顺序寻找同时符合条件 1 1 1 2 2 2 的所有 3 3 3 位数,条件为:

  1. 该数为完全平方数。
  2. 该数至少有 2 2 2 位数字相同。

例如, 100 100 100 同时满足上面两个条件。

时间限制:1 s
内存限制:64 MB

  • 输入
    输入一个数 n n n n n n 的大小不超过实际满足条件的 3 3 3 位数的个数。
  • 输出
    输出为第 n n n 个满足条件的 3 3 3 位数(升序)。
  • 样例输入
    1
    
  • 样例输出
    100
    

思路分析

此题考察枚举法,属于循环结构的一般应用题,求解方法比较多样,有的代码复杂但容易想到,有的代码简单但不容易想到。

首先此题需要一个计数器变量 tot 来统计满足条件的 3 3 3 位数的数量。程序主体部分可以采用循环枚举所有三位数,对每个三位数进行条件 1 1 1 2 2 2 的判断,若同时满足两个条件,则将计数器变量 tot 累加一次;然后判断 tot 是否等于 n n n,若是,则输出此刻对应的 3 3 3 位数即可。条件 2 2 2 是比较好判断的,但是条件 1 1 1 判断起来比较麻烦,可以采用 sqrt 结合类型转换来简化代码。若不知道 sqrt 函数,那么就可能需要用循环去枚举了,更好的做法是用二分。但是很显然 sqrt 和二分都不属于一级的考察范畴,绝大部分教练也不会让学生在学完 sqrt 之后再去考一级。虽然用循环枚举也能解决,但我们还是希望能有一个更好的解决方案。

更好的方案是将循环枚举 3 3 3 位数调整为枚举平方根,这样就不需要判断条件 1 1 1 了,而且可以极大的加快程序运行效率。由于最小 3 3 3 位数是 100 100 100,它的平方根是 10 10 10,而最大三位数是 999 999 999,它的平方根约等于 31.6 31.6 31.6,因此我们只需要在 10 ∼ 31 10 \sim 31 1031 的范围内进行枚举即可。参考代码也用这种方式来实现。

还有一种方法是将枚举 3 3 3 位数的循环改成 3 3 3 层循环,每层循环枚举 3 3 3 位数的一个位,这样对于条件 2 2 2 的判断就不需要数位分离操作了,效果与第一种方法类似,程序运行效率也完全一致,此处不再赘述。

/** Name: T5.cpp* Problem: 求满足条件的 3 位数* Author: Teacher Gao.* Date&Time: 2024/04/07 14:00*/#include <iostream>using namespace std;int main()
{int n, tot = 0;cin >> n;for (int i = 10; i <= 31; i++) {int x = i * i;			// 确保满足条件 1// 数位分离int a = x % 10;int b = x / 10 % 10;int c = x / 100;// 检测是否满足条件 2if (a == b || a == c || b == c) {tot++;// 检测是否是第 n 个满足条件的if (tot == n) {cout << x << endl;break;}}}return 0;
}

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

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

相关文章

未来AI技术方面的创业机会

私信博主&#xff0c;加入有前途的行业。 人工智能&#xff08;AI&#xff09;技术的快速发展和广泛应用为创业者提供了丰富的机会。随着技术的不断进步&#xff0c;AI的应用领域正在不断拓展&#xff0c;为创业者提供了广阔的创新空间。以下是一些未来AI技术方面的创业机会&a…

JavaWeb后端——Mybatis

概述 Mybatis&#xff1a;Java程序来对数据库进行操作&#xff0c;一款优秀的持久层框架&#xff0c;用于简化JDBC的开发 SSM&#xff1a;SpringMVC、Spring、Mybatis 快速入门 步骤2&#xff1a;注意数据库连接的四要素 application.properties&#xff1a;springboot 的默…

【leetcode】动态规划::前缀和

标题&#xff1a;【leetcode】前缀和 水墨不写bug 正文开始&#xff1a; &#xff08;一&#xff09;简单前缀和 描述 给定一个长度为n的数组a1​,a2​,....an​. 接下来有q次查询, 每次查询有两个参数l, r. 对于每个询问, 请输出al​al1​....ar​ 输入描述&#xff1a; 第一…

文章解读与仿真程序复现思路——电力系统自动化EI\CSCD\北大核心《考虑灵活爬坡产品的虚拟电厂两阶段分布鲁棒优化运营策略》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

轨迹规划 | 图解最优控制LQR算法(附ROS C++/Python/Matlab仿真)

目录 0 专栏介绍1 最优控制理论2 线性二次型问题3 LQR的价值迭代推导4 基于差速模型的LQR控制5 仿真实现5.1 ROS C实现5.2 Python实现5.3 Matlab实现 0 专栏介绍 &#x1f525;附C/Python/Matlab全套代码&#x1f525;课程设计、毕业设计、创新竞赛必备&#xff01;详细介绍全…

ccf201712-2游戏

队列应用 import java.util.LinkedList; import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner new Scanner(System.in);LinkedList<Integer> queue new LinkedList<>();int total scanner.nextInt();int k …

硬件标准化之道:Linux社区与硬件厂商的协同创新

在Linux的广阔世界中&#x1f30c;&#xff0c;与各式各样的硬件设备进行互动和协作是一项不断进行的挑战&#x1f527;。硬件厂商和Linux社区的紧密合作&#xff0c;通过制定一系列标准和协议&#x1f4dc;&#xff0c;使得从键盘&#x1f3b9;和鼠标&#x1f5b1;到复杂的网络…

Transformer介绍

一、Transformer概述 Transformer模型是一种基于自注意力机制的神经网络架构&#xff0c;主要用于处理序列数据&#xff0c;如自然语言文本。它由编码器&#xff08;Encoder&#xff09;和解码器&#xff08;Decoder&#xff09;两部分组成&#xff0c;通过多层的自注意力机制…

七、Ajax(Django开发)

Ajax&#xff08;Django开发&#xff09; 知识点的回顾&#xff1a;1.Ajax请求2.订单小结3.图表4.关于文件上传4.1基本操作案例&#xff1a;批量上传数据案例&#xff1a;混合数据&#xff08;Form&#xff09;4.2启用media案例&#xff1a;混合数据&#xff08;form&#xff0…

2024-简单点-python单例模式-__call__和__new__-线程安全版本

单例属性可变 先看一个版本&#xff0c;这版本虽然能控制成一个单实例&#xff0c;但是实例的值却可以变。。 import threading class Singleton: _instance None _lock threading.Lock() def __new__(cls, *args, **kwargs): # 加锁以确保线程安全 with cls._lock: …

C++设计模式:桥模式(五)

1、定义与动机 桥模式定义&#xff1a;将抽象部分&#xff08;业务功能&#xff09;与实现部分&#xff08;平台实现&#xff09;分离&#xff0c;使他们可以独立地变化引入动机&#xff1a; 由于某些类型的固有的实现逻辑&#xff0c;使得它们具有两个变化的维度&#xff0c;…

【华为OD机试】游戏分组、王者荣耀【C卷|100分】

【华为OD机试】-真题 !!点这里!! 【华为OD机试】真题考点分类 !!点这里 !! 题目描述 部门准备举办一场王者荣耀表演赛,有 10 名游戏爱好者参与, 分 5 为两队,每队 5 人。 每位参与者都有一个评分,代表着他的游戏水平。 为了表演赛尽可能精彩,我们需要把 10 名参赛者分为…

git环境切换

文章目录 一. 操作步骤&#xff1a;1.查看全局设置3.Git 切换本地git设置4.切换仓库并推送 一. 操作步骤&#xff1a; 1.查看全局设置 $ Git config --global --list credential.https://codeup.aliyun.com.providergeneric user.namebiejiahao user.emailxxxxxxxxqq.com3.Gi…

人工智能数据分析Python常用库 03 pandas库

文章目录 一、对象创建1、Series对象&#xff08;1&#xff09;用列表创建&#xff08;2&#xff09;用一维numpy数组创建&#xff08;3&#xff09;用字典创建&#xff08;4&#xff09;data为标量的情况 2、DataFrame对象&#xff08;1&#xff09;通过Series对象创建&#x…

阿里云服务器可以干嘛 阿里云服务器应用场景有哪些

阿里云服务器可以干嘛&#xff1f;能干啥你还不知道么&#xff01;简单来讲可用来搭建网站、个人博客、企业官网、论坛、电子商务、AI、LLM大语言模型、测试环境等&#xff0c;阿里云百科aliyunbaike.com整理阿里云服务器的用途&#xff1a; 阿里云服务器活动 aliyunbaike.com…

单例模式--理解

单例模式 单例模式是指在内存中只会创建且仅创建一次对象的设计模式。在程序中多次使用同一个对象且作用相同时&#xff0c;为了防止频繁地创建对象使得内存飙升&#xff0c;单例模式可以让程序仅在内存中创建一个对象&#xff0c;让所有需要调用的地方都共享这一单例对象。 单…

使用docker-compose创建多项目容器运行

使用docker-compose创建多项目容器运行 按招网友提供方法创建 docker-compose.yml内容&#xff08;这里改了桥接模式&#xff0c;并且注释放开&#xff09; version: "3" services:docker_python:image: python:2.7.18container_name: py_appworking_dir: "/r…

婴儿洗衣机哪种比较实用?精选四大热门口碑婴儿洗衣机推荐

对于有了宝宝的家庭来说&#xff0c;洗衣成为了一项重要的家务事。大家都知道&#xff0c;宝宝的皮肤比较娇嫩&#xff0c;容易受到各种细菌、病毒的侵扰。所以&#xff0c;宝宝的衣物应该与大人的分开洗。婴儿洗衣机作为一种专门为婴幼儿家庭设计的洗衣机&#xff0c;其具有除…

空调(c++实现)

题目 Farmer John 的 N 头奶牛对他们牛棚的室温非常挑剔。 有些奶牛喜欢温度低一些&#xff0c;而有些奶牛则喜欢温度高一些。 Farmer John 的牛棚包含一排 N个牛栏&#xff0c;编号为 1…N&#xff0c;每个牛栏里有一头牛。 第 i 头奶牛希望她的牛栏中的温度是 pi&#xff0c…