一本通编程启蒙例18及练习题解

例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;  
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值