目录
- [T1. 三角形面积](#T1. 三角形面积)
- [T2. 元音字母](#T2. 元音字母)
- [T3. 制作咖啡](#T3. 制作咖啡)
- [T4. 闯关得分](#T4. 闯关得分)
- [T5. 奇数偶数对](#T5. 奇数偶数对)
T1. 三角形面积
给定三角形的底和高,求三角形的面积。
三角形的面积计算公式为:面积 = = = 底 × × × 高 ÷ 2 ÷ 2 ÷2。
时间限制:1 s
内存限制:256 MB
-
输入
一行,两个整数分别表示三角形的底和高,不超过 1000 1000 1000。 -
输出
一个数,表示三角形的面积:如果面积为整数,则输出整数形式;如果面积为小数,则输出小数形式。 -
样例输入 1
a4 5 -
样例输出 1
a10 -
样例输入 2
a5 3 -
样例输出 2
a7.5
思路分析
此题考查分支结构,属于入门题。
如果底乘高 为偶数,则三角形面积为整数,直接输出即可,否则应当控制输出保留 1 1 1 位小数。由于底和高都是整数,因此当底乘高 为奇数时,应当在代码中除以 2.0 2.0 2.0。
cpp
/*
* Name: T1.cpp
* Problem: 三角形面积
* Author: Teacher Gao.
* Date&Time: 2026/01/08 01:17
*/
#include <cstdio>
using namespace std;
int main()
{
int a, h;
scanf("%d%d", &a, &h);
if (a * h % 2 == 0) {
printf("%d\n", a * h / 2);
}
else {
printf("%.1f", a * h / 2.0);
}
return 0;
}
T2. 元音字母
给定一个小写字母 c c c,判断 c c c 是否是元音字母。元音字母有: a \text{a} a、 e \text{e} e、 i \text{i} i、 o \text{o} o、 u \text{u} u。
时间限制:1 s
内存限制:256 MB
-
输入
输入一个小写字母。 -
输出
如果输入是元音字母,输出Vowel,否则输出Consonant。 -
样例输入 1
aa -
样例输出 1
aVowel -
样例输入 2
at -
样例输出 2
aConsonant
思路分析
此题考查分支结构与逻辑运算,属于入门题。
根据题意进行判断输出即可, 5 5 5 个元音字母的判断逻辑用逻辑或(||)进行连接。
cpp
/*
* Name: T2.cpp
* Problem: 元音字母
* Author: Teacher Gao.
* Date&Time: 2026/01/08 01:33
*/
#include <iostream>
using namespace std;
int main()
{
ios::sync_with_stdio(false), cin.tie(0);
char c;
cin >> c;
if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u') {
cout << "Vowel\n";
}
else {
cout << "Consonant\n";
}
return 0;
}
T3. 制作咖啡
有一台咖啡机每启动运行 A A A 秒后生成 B B B 杯咖啡(即在时刻 A , 2 A , 3 A , ... A, 2A, 3A, \dots A,2A,3A,... 生成咖啡)。
给定咖啡机总运行时间 T T T 秒,请计算生成的咖啡总杯数。
时间限制:1 s
内存限制:256 MB
-
输入
一行,三个整数: A A A, B B B, T T T, 1 ≤ A , B , T ≤ 10 4 1 \leq A, B, T \leq 10^4 1≤A,B,T≤104。 -
输出
一个整数,表示咖啡总杯数。 -
样例输入 1
a80 90 170 -
样例输出 1
a180 -
样例输入 2
a100 50 100 -
样例输出 2
a50 -
样例输入 3
a3 5 7 -
样例输出 3
a10 -
样例输入 4
a20 20 19 -
样例输出 4
a0
思路分析
此题考查算术运算,属于入门题。
根据题意, t t t 秒内咖啡机可以启动 ⌊ t / a ⌋ \lfloor t/a\rfloor ⌊t/a⌋ 次,因此总共可以生成 ⌊ t / a ⌋ × b \lfloor t/a\rfloor\times b ⌊t/a⌋×b 杯咖啡,C++ 表达式 t / a * b 即为答案,注意运算顺序不要写反了。
cpp
/*
* Name: T3.cpp
* Problem: 制作咖啡
* Author: Teacher Gao.
* Date&Time: 2026/01/08 01:39
*/
#include <iostream>
using namespace std;
int main()
{
ios::sync_with_stdio(false), cin.tie(0);
int a, b, t;
cin >> a >> b >> t;
cout << t / a * b << endl;
return 0;
}
T4. 闯关得分
每一名选手有三次挑战机会,每次挑战会获得一个得分。最终得分规则为:取三次挑战中得分最高的两次,将这两次的得分相加,作为该选手的最终得分。
现给定该选手三次挑战的得分,请计算并输出其最终得分。
时间限制:1 s
内存限制:256 MB
-
输入
一行包含三个整数,分别表示三次挑战的得分,整数之间用空格分隔。每次挑战的得分均为 0 0 0 到 100 100 100 之间的整数(包含 0 0 0 和 100 100 100)。 -
输出
一个整数,表示选手的最终得分。 -
样例输入 1
a80 90 70 -
样例输出 1
a170 -
样例输入 2
a100 50 100 -
样例输出 2
a200
思路分析
此题考查分支结构的应用,属于基础题。
只需要找出其中的最小值,把另外两个数值相加即为答案。利用打擂台思想,先假设 a a a 是最小值,如果 b < a b < a b<a 就交换 a , b a,b a,b 的值,同理,在 c < a c<a c<a 的情况下交换 a , c a,c a,c 的值。最终 a a a 就是三个数值中的最小值,而 b + c b+c b+c 就是答案。
cpp
/*
* Name: T4.cpp
* Problem: 闯关得分
* Author: Teacher Gao.
* Date&Time: 2026/01/08 01:44
*/
#include <iostream>
using namespace std;
int main()
{
ios::sync_with_stdio(false), cin.tie(0);
int a, b, c;
cin >> a >> b >> c;
if (b < a) swap(a, b);
if (c < a) swap(a, c);
cout << b + c << endl;
return 0;
}
T5. 奇数偶数对
给定一个正整数 K K K,求满足以下条件的整数对 ( x , y ) (x,y) (x,y) 的数量:
- 1 ≤ x ≤ K 1≤x≤K 1≤x≤K,且 x x x 为奇数;
- 1 ≤ y ≤ K 1≤y≤K 1≤y≤K,且 y y y 为偶数。
时间限制:1 s
内存限制:256 MB
-
输入
一个整数 K K K, 1 ≤ K ≤ 10 4 1 \leq K \leq 10^4 1≤K≤104。 -
输出
一个整数,表示满足条件的数对数量。 -
样例输入 1
a3 -
样例输出 1
a2 -
样例输入 2
a5 -
样例输出 2
a6 -
样例输入 3
a50 -
样例输出 3
a625
思路分析
此题考查算术运算,属于入门题。
在 1 ∼ k 1\sim k 1∼k 范围内,偶数有 ⌊ k / 2 ⌋ \lfloor k / 2\rfloor ⌊k/2⌋ 个,而奇数有 ⌈ k / 2 ⌉ \lceil k / 2\rceil ⌈k/2⌉ 个,满足条件的数对个数为奇数数量与偶数数量的乘积。关于向上取整的操作,前面已经用过很多次了,在 2025 年 6 月一级第四题的思路解析中给出了计算公式,此处不再赘述。
cpp
/*
* Name: T5.cpp
* Problem: 奇数偶数对
* Author: Teacher Gao.
* Date&Time: 2026/01/08 01:55
*/
#include <iostream>
using namespace std;
int main()
{
ios::sync_with_stdio(false), cin.tie(0);
int k;
cin >> k;
cout << (k / 2) * ((k + 1) / 2) << endl;
return 0;
}