例18.1
1.首先,我们需要读入两个整数 x 和 y,分别表示中午睡觉的分钟数和晚上睡觉的小时数。
2.接下来,我们需要判断睡眠时间是否充足。根据题目描述,中午睡觉 1 分钟相当于晚上睡觉 3 分钟,而睡够需要达到 8 小时(即 480 分钟)。
3.我们可以利用一个简单的公式进行计算:n * 3 + m * 60,其中 n 表示中午睡觉的分钟数,m 表示晚上睡觉的小时数。如果该值大于等于 480,说明睡眠时间充足;否则,睡眠时间不充足。
4.最后,根据判断结果输出"Yes"或"No"。
#include <bits/stdc++.h>
using namespace std;
long long n, m; // 声明两个整型变量 n 和 m
int main(){
cin >> n >> m; // 读入两个整数 n 和 m
if(n * 3 + m * 60 >= 480) // 如果 n * 3 + m * 60 大于等于 480,睡眠时间充足
cout << "Yes"; // 输出"Yes"
else
cout << "No"; // 否则,输出"No"
return 0;
}
例18.2
使用min函数求解即可
min函数浅介:传入两个参数,返回值是最小的一个
#include <bits/stdc++.h>
using namespace std;
long long n, m, x;
int main(){
cin >> n >> m >> x;
cout << "min=" << min(min(n, m), x);
return 0;
}
例18.3
次数=b-a-a-a-a中a出现的次数…直到b的值小于等于0
例:次数=7-3-3-3中3的出现次数3。
观察可知直接b/a向上取整即可。
#include <bits/stdc++.h>
using namespace std;
long long n, m;
int main(){
cin >> n >> m;
cout << ceil(m * 1.0 / n);
return 0;
}
练18.1
这里代码使用了三目运算符代替亮的if语句,有兴趣可以了解下
1.首先,我们需要读入一个整数 m,表示现在的时间的分钟数。
2.接下来,我们需要计算还要等待多久才能打电话给贝贝。根据题目描述,晶晶想在刚好 25 分钟的时候打电话给贝贝。
我们可以利用一个简单的条件表达式进行计算:wait_time = (m > 25) ? (60 - m + 25) : (25 - m)。
3.如果 m 大于 25,则晶晶下一次打电话给贝贝的时间为 60 - m + 25 分钟;
4.如果 m 不大于 25,则晶晶下一次打电话给贝贝的时间为 25 - m 分钟。
5.最后,输出等待的时间 wait_time。
#include <iostream>
using namespace std;
int main() {
int m; // 声明一个整型变量 m
cin >> m; // 读入现在时间的分钟数
int wait_time = (m > 25) ? (60 - m + 25) : (25 - m); // 计算还要等待的时间 wait_time
cout << wait_time << endl; // 输出等待的时间 wait_time
return 0;
}
练18.2
1.首先,我们需要读入三个整数 n、x 和 y,分别表示苹果的数量、虫子每小时吃掉一个苹果所需的时间和经过的时间。
2.接下来,我们需要计算剩下的完整苹果的数量。
根据题目描述,虫子在吃完一个苹果之前不会吃另一个。所以,我们可以通过计算虫子吃掉的苹果数量来得到剩下的苹果数量。
3.我们可以利用一个简单的公式进行计算:n = n - ceil(y * 1.0 / x),其中 n 表示苹果的数量,y 表示经过的时间,x 表示虫子每小时吃掉一个苹果所需的时间。
4.最后,我们需要判断剩下的苹果数量是否小于 0,如果小于 0,则将其设置为 0。
5.输出剩下的苹果数量 n。
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int main(){
int n, x, y; // 声明三个整型变量 n、x 和 y
cin >> n >> x >> y; // 读入苹果的数量、虫子每小时吃掉一个苹果所需的时间和经过的时间
n = n - ceil(y * 1.0 / x); // 计算剩下的完整苹果的数量
if (n < 0) // 如果剩下的苹果数量小于 0
n = 0; // 将其设置为 0
cout << n; // 输出剩下的苹果数量
return 0;
}
练18.4
1.首先,我们需要读入一个整数 x 和一个字符 y,分别表示邮件的重量(单位为克)和用户是否选择加急。
2.接下来,我们需要根据重量和是否加急计算邮费。根据题目描述,重量在1000克以内(包括1000克)的基本费用为8元。
3.如果重量超过1000克,则需要计算超重费用。超过1000克的部分,每500克加收超重费4元,不足500克部分按500克计算。
4.如果用户选择加急,需要额外收取5元。
5.最后,输出计算得到的邮费 s。
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int main()
{
int x; // 声明一个整型变量 x
char y; // 声明一个字符变量 y
int s; // 声明一个整型变量 s
cin >> x >> y; // 读入邮件的重量和用户是否选择加急
if (x <= 1000) // 如果重量在1000克以内(包括1000克)
s = 8; // 基本费用为8元
else
s = 8 + ceil((x - 1000) / 500.0) * 4; // 否则,计算超重费用
if (y == 'y') // 如果用户选择加急
s = s + 5; // 需要额外收取5元
cout << s; // 输出计算得到的邮费 s
return 0;
}