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