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

例19.1

1.首先,我们需要读入一个正整数 a,表示笼子里面脚的总数。

2.接下来,我们需要计算笼子里面至少有多少只动物和至多有多少只动物。
根据题目描述,鸡有 2 只脚,兔子有 4 只脚。

3.我们可以利用以下规律进行计算:
如果脚的总数 a 为奇数,那么无法满足要求,输出 “0 0”;
如果脚的总数 a 为偶数,那么最少的动物数为 floor(a / 4.0) + (a % 4) / 2,最多的动物数为 a / 2。

4.最后,输出最少的动物数和最多的动物数。

规律如何出?且用纸笔书!
(哇塞,还押韵了,我太厉害了!!!)

#include <bits/stdc++.h> 

using namespace std;

long long n;  // 声明一个长整型变量 n

int main(){
	cin >> n;  // 读入脚的总数

	if(n % 2)  // 如果脚的总数为奇数,无法满足要求
		cout << "0 0";
	else
		cout << floor(n / 4.0) + n % 4 / 2 << ' ' << n / 2;  // 计算最少和最多的动物数

	return 0;  
}

例19.2

1.首先,我们需要读入两个整数 n 和 m,分别表示身高(单位为厘米)和体重(单位为千克)。
2.接下来,我们需要根据身高和体重判断某人的身材是否标准。
3.根据题目描述,标准体重为 (身高 - 100) × 0.9。
4.我们可以利用以下规律进行判断:

  • 如果实际体重超过标准体重的 1.1 倍,则认为是肥胖;
  • 如果实际体重小于标准体重的 0.9 倍,则认为是瘦;
  • 否则,认为是标准范畴。
5.最后,根据判断结果输出相应的结果。
#include <bits/stdc++.h>  

using namespace std;

long long n, m, a;  // 声明三个长整型变量 n、m 和 a

int main(){
	cin >> n >> m;  // 读入身高和体重

	a = (n - 100) * 0.9;  // 计算标准体重

	if(a * 1.1 < m)  // 如果实际体重超过标准体重的 1.1 倍,则认为是肥胖
		cout << "fat";
	else if(a * 0.9 > m)  // 如果实际体重小于标准体重的 0.9 倍,则认为是瘦
		cout << "thin";
	else  // 否则,认为是标准范畴
		cout << "standard";
	
	return 0;  
}

例19.3

这不是之前那道从小到大输出嘛,用的min函数。
既然做过,那就加大一丢丢代码难度吧!

#include <bits/stdc++.h>
using namespace std;
double a[4];
int main(){
	cin >> a[1] >> a[2] >> a[3];
	sort(a, a + 4);
	for(int i = 1; i <= 3; i ++)
		cout << a[i] << ' ';
	
	return 0;
}

练19.1

这…应该很简单对吧?直接对比输出即可

#include <iostream>
using namespace std;
int main()
{
	int x,y;
	cin>>x>>y;
	if (x>y)
		cout<<">"<<endl;
	else if (x==y)
		cout<<"="<<endl;
	else if (x<y)
		cout<<"<"<<endl;
	
	return 0;
}

练19.2

这不是…跟上面的差不多,我们只要for循环逆向输出即可啦!
不会的话用max函数(就是把之前的min改成max就行啦)

#include <bits/stdc++.h>
using namespace std;
double a[4];
int main(){
	cin >> a[1] >> a[2] >> a[3];
	sort(a, a + 4);
	for(int i = 3; i; i --)
		cout << a[i] << ' ';
	
	return 0;
}

练19.4

1.首先,我们需要读入一个整数 c,表示一次办事要行走的距离,单位为米。

2.接下来,我们需要判断是骑车快还是走路快。
根据题目描述,找到自行车、开锁并骑上自行车的时间为27秒,停车锁车的时间为23秒,步行每秒行走1.2米,骑车每秒行走3.0米。

3.我们可以根据以下规律进行判断:

  • 如果骑车所需时间(c / 3.0 + 50)小于步行所需时间(c / 1.2),则认为骑车快;
  • 如果骑车所需时间大于步行所需时间,则认为走路快;/li>
  • 如果骑车所需时间等于步行所需时间,则认为一样快。

4.根据判断结果输出相应的结果。

#include <iostream>  

using namespace std;

int main(){
	int c;  // 声明一个整型变量 c

	cin >> c;  // 读入一次办事要行走的距离

	if (c / 3.0 + 50 < c / 1.2)  // 如果骑车所需时间小于步行所需时间,骑车快
		cout << "Bike" << endl;
	if (c / 3.0 + 50 > c / 1.2)  // 如果骑车所需时间大于步行所需时间,走路快
		cout << "Walk" << endl;
	if (c / 3.0 + 50 == c / 1.2)  // 如果骑车所需时间等于步行所需时间,一样快
		cout << "All" << endl;

	return 0;  
}

练19.5

这道题是不是很简单呢?
输入月、日
题目说1月1日至1月24日为鼠,说明当属鼠的条件有以下两个:
1.月份为1
2.日小于24
(满足为鼠,不满足为猪)

#include <bits/stdc++.h>
using namespace std;
long long a, b, c;
int main(){
	cin >> a >> b;
	if(a == 1 and b <= 24)
		cout << "Pig";
	else
		cout << "Mouse";
	
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值