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

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

目录

  • T1. 鸡兔同笼
    • 思路分析
  • T2. 猴子吃桃
    • 思路分析
  • T3. 括号匹配问题
  • T4. 上台阶
    • 思路分析
  • T5. 田忌赛马

T1. 鸡兔同笼

一个笼子里面关了鸡和兔子(鸡有 2 2 2 只脚,兔子有 4 4 4 只脚,没有例外)。已经知道了笼子里面脚的总数 a a a,问笼子里面至少有多少只动物,至多有多少只动物。

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

  • 输入
    一行,一个正整数 a   ( a < 32768 ) a\ (a < 32768) a (a<32768)
  • 输出
    一行,包含两个正整数,第一个是最少的动物数,第二个是最多的动物数,两个正整数用一个空格分开。如果没有满足要求的答案,则输出两个 0 0 0,中间用一个空格分开。
  • 样例输入
    20
    
  • 样例输出
    5 10
    

思路分析

此题考查数学思维,属于入门题。

由于鸡和兔子的脚都是偶数,因此

  • 如果 a a a 为奇数,则没有满足要求的答案;
  • 如果 a a a 为偶数,则最少的动物数量应满足兔子数量最多,此时答案为 ⌈ a / 4 ⌉ \lceil a/4 \rceil a/4;最多的动物数量应满足鸡的数量最多,此时答案为 a / 2 a/2 a/2
/** Name: T1.cpp* Problem: 鸡兔同笼* Author: Teacher Gao.* Date&Time: 2024/12/02 19:41*/#include <cstdio>int main()
{int a;scanf("%d", &a);if (a % 2) printf("0 0");else printf("%d %d", (a + 3) / 4, a / 2);return 0;
}

T2. 猴子吃桃

海滩上有一堆桃子, n n n 只猴子来分。第一只猴子把这堆桃子平均分为 n n n 份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子接着把剩下的桃子平均分成 n n n 份,又多了一个,它同样把多的一个扔入海中,拿走了一份。第三、第四、…… 第 n n n 只猴子仍是最终剩下的桃子分成 n n n 份,扔掉多了的一个,并拿走一份。

编写程序,输入猴子的数量 n n n,输出海滩上最少的桃子数,使得每只猴子都可吃到桃子。

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

  • 输入
    一个整数 n n n
  • 输出
    输出当猴子数量为 n n n 时海滩上最少的桃子数。结果保证在 int 型范围内。
  • 样例输入
    2
    
  • 样例输出
    7
    

思路分析

更新于 2024/12/05:

  1. 修正此前思路分析中的错误;
  2. 给出适合小学生的解题思路。

此题考查枚举算法和递推算法,属于基础题。

递推思路一:假设第 i i i 只猴子分桃子时的总数为 s i s_i si,根据题意,第 i i i 只猴子拿走的桃子数量为 ( s i − 1 ) n \frac{(s_i - 1)}{n} n(si1),于是第 i + 1 i+1 i+1 只猴子分桃子时的总数为 s i + 1 = ( s i − 1 ) n × ( n − 1 ) s_{i+1} = \frac{(s_i - 1)}{n} \times (n-1) si+1=n(si1)×(n1)。由于知道末项,需要求解首项,因此需要转变递推式为 s i = s i + 1 × n n − 1 + 1 s_i = \frac{s_{i+1} \times n}{n-1} + 1 si=n1si+1×n+1,最终答案为 s 1 s_1 s1

递推思路二:假设第 i i i 只猴子拿走的桃子数量为 s i s_i si,根据题意,第 i + 1 i+1 i+1 只猴子分桃子时的总数为 s i × ( n − 1 ) s_i \times (n-1) si×(n1),于是第 i + 1 i+1 i+1 只猴子拿走的桃子数量为 s i + 1 = s

http://www.lryc.cn/news/500223.html

相关文章:

  • webpack 题目
  • 【MySQL】视图详解
  • 第一节:ORIN NX介绍与基于sdkmanager的镜像烧录(包含ubuntu文件系统/CUDA/OpenCV/cudnn/TensorRT)
  • 2024-12-04OpenCV视频处理基础
  • D89【python 接口自动化学习】- pytest基础用法
  • 七、docker registry
  • FlightGear+MATLAB+飞行手柄实现实时飞控视景系统
  • 深入 Java 基础 XML:高级特性与最佳实践
  • 【论文阅读】Fifty Years of the ISCA: A Data-Driven Retrospective
  • TVbox源贡献指南
  • qt数据类型定义(包含签名)
  • docker逃逸总结
  • MySql:表的操作
  • LVGL9 开关控件 (lv_switch) 使用指南
  • fastadmin 登录退出忽略中间提示页面
  • 游戏引擎学习第36天
  • 准确率99.9%的离线IP地址定位库 ip2region - python 示例
  • wordpress网站使用Linux宝塔面板和SQL命令行导入导出超过50M限制的数据库
  • 开发基础(3):开发应用沉浸式效果 组件安全区方案
  • Python中的数据可视化实战
  • 计算机毕设-基于springboot的甜品店管理系统的设计与实现(附源码+lw+ppt+开题报告)
  • SpringMVC纯注解快速开发
  • 【JAVA】Java高级:多数据源管理与Sharding:在Spring Boot应用中实现多数据源的管理
  • 汽车网络安全 -- IDPS如何帮助OEM保证车辆全生命周期的信息安全
  • 黑马点评项目测试总结
  • 【Selenium】基于 WebDriverWait 爬取带有懒加载的静态页面
  • 【docker】docker compose 和 docker swarm
  • Javaweb 前端 ajax
  • 【蓝桥杯每日一题】重新排序
  • 《深入浅出HTTPS》读书笔记(16):消息验证码算法分类