2025年全国青少年信息素养大赛复赛C++算法创意实践挑战赛真题模拟强化训练(试卷4:共计6题带解析)
第1题:最佳情侣身高差(题目及解析)
题目描述
专家通过多组情侣研究数据发现,最佳的情侣身高差遵循着一个公式:(女方的身高)× 1.09 =(男方的身高)。如果符合,你俩的身高差不管是牵手、拥抱、接吻,都是最和谐的差度。
下面就请你写个程序,为任意一位用户计算他/她的情侣的最佳身高。
时间限制:1000
内存限制:65536
输入
输入第一行给出正整数 N(≤ 10),为前来查询的用户数。随后 N 行,每行按照“性别 身高”的格式给出前来查询的用户的性别和身高,其中“性别”为“F”表示女性、“M”表示男性;“身高”为区间 [1.0, 3.0] 之间的实数。
输出
对每一个查询,在一行中为该用户计算出其情侣的最佳身高,保留小数点后2位。
样例输入
2
M 1.75
F 1.8
样例输出
1.61
1.96
AC代码
#include<bits/stdc++.h>
using namespace std;int n; // 定义用户数量变量int main() {cin >> n; // 读取用户数量while (n--) { // 循环处理每个用户char c; // 性别,'M'表示男性,'F'表示女性double sg, ans; // sg为用户身高,ans为计算出的情侣身高cin >> c >> sg; // 读取性别和身高if (c == 'M') { // 当前用户是男性,计算女性伴侣的最佳身高ans = sg / 1.09; // 公式:男性身高/1.09 = 女性伴侣身高} else { // 当前用户是女性,计算男性伴侣的最佳身高ans = sg * 1.09; // 公式:女性身高*1.09 = 男性伴侣身高}// 设置输出格式为固定小数点,保留两位小数cout << fixed << setprecision(2) << ans << endl;}return 0;
}
功能分析
-
输入处理
- 程序首先读取用户数量
n
,然后循环读取每个用户的性别('M'
或'F'
)和身高数据。
- 程序首先读取用户数量
-
计算逻辑
- 男性用户(‘M’):根据公式
女性伴侣身高 = 男性身高 / 1.09
,计算出适合的女性伴侣身高。 - 女性用户(‘F’):根据公式
男性伴侣身高 = 女性身高 × 1.09
,计算出适合的男性伴侣身高。
- 男性用户(‘M’):根据公式
-
输出格式化
- 使用
fixed
和setprecision(2)
确保输出结果保留两位小数,符合题目要求。
- 使用
第2题:寻找250(题目及解析)
题目描述
有人向你扔了一串数…… 而你必须从这一串数字中找到“250”这个高大上的感人数字。
时间限制:1000
内存限制:65536
输入
输入在一行中给出不知道多少个绝对值不超过1000的整数,其中保证至少存在一个“250”。(数的总个数不超过3000)
输出
在一行中输出第一次出现的“250”是对方扔过来的第几个数字(计数从1开始)。题目保证输出的数字在整型范围内。
样例输入
888 666 123 -233 250 13 250 -222
样例输出
5
AC代码
// 包含所有标准库的头文件,简化代码编写
#include<bits/stdc++.h>
using namespace std;int n, cnt = 0; // n存储当前读取的数字,cnt记录当前是第几个数字(从1开始)int main() {