
2025-4-10-C++ 学习 分支结构(中)
C++学习 分支结构(中)
文章目录
2025-4-10-C++学习 分支结构(中)
继续,题目有点长了。
P5713 【深基3.例5】洛谷团队系统
题目描述
在洛谷上使用团队系统非常方便的添加自己的题目。如果在自己的电脑上配置题目和测试数据,每题需要花费时间
5
5
5 分钟;而在洛谷团队中上传私有题目,每题只需要花费
3
3
3 分钟,但是上传题目之前还需要一次性花费
11
11
11 分钟创建与配置团队。现在要配置
n
n
n 道题目,如果本地配置花费的总时间短,请输出 Local
,否则输出 Luogu
。
输入格式
输入一个正整数 n n n,表示需要配置的题目量。
输出格式
输出一行,一个字符串。如果本地配置花费的总时间短,请输出 Local
,否则输出 Luogu
。
输入输出样例 #1
输入 #1
2
输出 #1
Local
输入输出样例 #2
输入 #2
50
输出 #2
Luogu
说明/提示
数据保证 1 ≤ n ≤ 100 1 \leq n\leq 100 1≤n≤100。
题解代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a;
cin >> a;
if ((5 * a) <= (11 + 3 * a))
{
cout << "Local";
}
else
{
cout << "Luogu";
}
return 0;
}
P5714 【深基3.例7】肥胖问题
题目描述
BMI 指数是国际上常用的衡量人体胖瘦程度的一个标准,其算法是 m h 2 \dfrac{m}{h^2} h2m,其中 m m m 是指体重(千克), h h h 是指身高(米)。不同体型范围与判定结果如下:
- 小于
18.5
18.5
18.5:体重过轻,输出
Underweight
; - 大于等于
18.5
18.5
18.5 且小于
24
24
24:正常体重,输出
Normal
; - 大于等于
24
24
24:肥胖,不仅要输出 BMI 值(使用
cout
的默认精度),然后换行,还要输出Overweight
;
现在给出体重和身高数据,需要根据 BMI 指数判断体型状态并输出对应的判断。
对于非 C++ 语言,在输出时,请四舍五入保留六位有效数字输出,如果小数部分存在后缀 0 0 0,不要输出后缀 0 0 0。
请注意,保留六位有效数字不是保留六位小数。例如 123.4567 123.4567 123.4567 应该输出为 123.457 123.457 123.457, 5432.10 5432.10 5432.10 应该输出为 5432.1 5432.1 5432.1。
输入格式
共一行。
第一行,共 2 2 2 个浮点数, m , h m, h m,h,分别表示体重(单位为 kg),身高(单位为 m)。
输出格式
输出一行一个字符串,表示根据 BMI 的对应判断。特别地,对于 Overweight
情况的特别处理请参照题目所述。
输入输出样例 #1
输入 #1
70 1.72
输出 #1
Normal
输入输出样例 #2
输入 #2
100 1.68
输出 #2
35.4308
Overweight
说明/提示
对于所有数据, 40 ≤ m ≤ 120 40\le m \le 120 40≤m≤120, 1.4 ≤ h ≤ 2.0 1.4 \le h \le 2.0 1.4≤h≤2.0。 m m m 和 h h h 的小数点后不超过三位。
题解代码
# include <bits/stdc++.h>
using namespace std;
int main()
{
double m ,h;
cin >> m >> h;
double BMI = m / (h * h);
if(BMI < 18.5)
{
cout << "Underweight" << endl;
}
else if(BMI < 24.0)
{
cout << "Normal" <<endl;
}
else
{
cout << setprecision(6) << BMI << endl;
cout << "Overweight" << endl;
}
return 0;
}
P5715 【深基3.例8】三位数排序
题目描述
给出三个整数 a , b , c ( 0 ≤ a , b , c ≤ 100 ) a,b,c(0\le a,b,c \le 100) a,b,c(0≤a,b,c≤100),要求把这三位整数从小到大排序。
输入格式
输入三个整数 a , b , c a,b,c a,b,c,以空格隔开。
输出格式
输出一行,三个整数,表示从小到大排序后的结果。
输入输出样例 #1
输入 #1
1 14 5
输出 #1
1 5 14
输入输出样例 #2
输入 #2
2 2 2
输出 #2
2 2 2
题解代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a, b, c;
cin >> a >> b >> c;
vector<int> nums = {a, b ,c};
sort(nums.begin(),nums.end());
cout << nums[0] << " " << nums[1] << " " << nums[2];
return 0;
}
P5716 【深基3.例9】月份天数
题目描述
输入年份和月份,输出这一年的这一月有多少天。需要考虑闰年。
输入格式
输入两个正整数,分别表示年份 y y y 和月数 m m m,以空格隔开。
输出格式
输出一行一个正整数,表示这个月有多少天。
输入输出样例 #1
输入 #1
1926 8
输出 #1
31
输入输出样例 #2
输入 #2
2000 2
输出 #2
29
说明/提示
数据保证 1583 ≤ y ≤ 2020 1583 \leq y \leq 2020 1583≤y≤2020, 1 ≤ m ≤ 12 1 \leq m \leq 12 1≤m≤12。
题解代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
int y, m;
cin >> y >> m;
int a1[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
if (((y%400 == 0) || (y%4 == 0) && (y%100 != 0)) && (m == 2))
{
cout << 29 << endl;
}
else
{
cout << a1[m-1] << endl;
}
return 0;
}
P1085 [NOIP 2004 普及组] 不高兴的津津
题目描述
津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。假设津津不会因为其它事不高兴,并且她的不高兴不会持续到第二天。请你帮忙检查一下津津下周的日程安排,看看下周她会不会不高兴;如果会的话,哪天最不高兴。
输入格式
输入包括 7 7 7 行数据,分别表示周一到周日的日程安排。每行包括两个小于 10 10 10 的非负整数,用空格隔开,分别表示津津在学校上课的时间和妈妈安排她上课的时间。
输出格式
一个数字。如果不会不高兴则输出 0 0 0,如果会则输出最不高兴的是周几(用 1 , 2 , 3 , 4 , 5 , 6 , 7 1, 2, 3, 4, 5, 6, 7 1,2,3,4,5,6,7 分别表示周一,周二,周三,周四,周五,周六,周日)。如果有两天或两天以上不高兴的程度相当,则输出时间最靠前的一天。
输入输出样例 #1
输入 #1
5 3
6 2
7 2
5 3
5 4
0 4
0 6
输出 #1
3
题解代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a, b;
int ans[7];
int ans_max, ans_idx;
for (int k1=0;k1<7;++k1)
{
cin >> a >> b;
if (k1 == 0)
{
ans_max = a + b;
ans_idx = 1;
}
else
{
if(ans_max < a + b)
{
ans_max = a + b;
ans_idx = k1+1;
}
}
}
if(ans_max > 8)
{
cout << ans_idx << endl;
}
else
{
cout << 0;
}
return 0;
}
P1909 [NOIP 2016 普及组] 买铅笔
题目背景
NOIP2016 普及组 T1
题目描述
P 老师需要去商店买 n n n 支铅笔作为小朋友们参加 NOIP 的礼物。她发现商店一共有 3 3 3 种包装的铅笔,不同包装内的铅笔数量有可能不同,价格也有可能不同。为了公平起见,P 老师决定只买同一种包装的铅笔。
商店不允许将铅笔的包装拆开,因此 P 老师可能需要购买超过 n n n 支铅笔才够给小朋友们发礼物。
现在 P 老师想知道,在商店每种包装的数量都足够的情况下,要买够至少 n n n 支铅笔最少需要花费多少钱。
输入格式
第一行包含一个正整数 n n n,表示需要的铅笔数量。
接下来三行,每行用 2 2 2 个正整数描述一种包装的铅笔:其中第 1 1 1 个整数表示这种包装内铅笔的数量,第 2 2 2 个整数表示这种包装的价格。
保证所有的 7 7 7 个数都是不超过 10000 10000 10000 的正整数。
输出格式
1 1 1 个整数,表示 P 老师最少需要花费的钱。
输入输出样例 #1
输入 #1
57
2 2
50 30
30 27
输出 #1
54
输入输出样例 #2
输入 #2
9998
128 233
128 2333
128 666
输出 #2
18407
输入输出样例 #3
输入 #3
9999
101 1111
1 9999
1111 9999
输出 #3
89991
说明/提示
铅笔的三种包装分别是:
- 2 2 2 支装,价格为 2 2 2;
- 50 50 50 支装,价格为 30 30 30;
- 30 30 30 支装,价格为 27 27 27。
P 老师需要购买至少 57 57 57 支铅笔。
如果她选择购买第一种包装,那么她需要购买 29 29 29 份,共计 2 × 29 = 58 2 \times 29 = 58 2×29=58 支,需要花费的钱为 2 × 29 = 58 2 \times 29 = 58 2×29=58。
实际上,P 老师会选择购买第三种包装,这样需要买 2 2 2 份。虽然最后买到的铅笔数量更多了,为 30 × 2 = 60 30 \times 2 = 60 30×2=60 支,但花费却减少为 27 × 2 = 54 27 \times 2 = 54 27×2=54,比第一种少。
对于第二种包装,虽然每支铅笔的价格是最低的,但要够发必须买 2 2 2 份,实际的花费达到了 30 × 2 = 60 30 \times 2 = 60 30×2=60,因此 P 老师也不会选择。
所以最后输出的答案是 54 54 54。
数据范围
保证所有的 7 7 7 个数都是不超过 10000 10000 10000 的正整数。
题解代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
int num;
cin >> num;
int a, b;
int min_val,tmp_val;
for(int k1 = 0; k1<3;++k1)
{
cin >> a >> b;
tmp_val = ceil((double)num / a) * b;
if(k1 == 0)
{
min_val = tmp_val;
}
else
{
if(min_val > tmp_val)
{
min_val = tmp_val;
}
}
}
cout << min_val << endl;
return 0;
}
更多推荐
所有评论(0)