2.5 课后习题与实验
习题 2-1
习题和第一章习题完全一致,所以略。
习题 2-2
一个三角形的三边长分别是 a、b、c,那么它的面积为
$ \sqrt{p(p-a)(p-b)(p-c)} $
,其中$ p=\frac{1}{2}(a+b+c) $。输入这三个数字,计算三角形的面积,四舍五入精确到 1 位小数。
保证能构成三角形,
$ 0\leq a,b,c\leq 1000 $,每个边长输入时不超过2位小数。
输入输出样例
| 输入 | 输出 |
|---|---|
3 4 5 |
6.0 |
建模分析:
这就是一个算术题。
解答
#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
int main()
{
double a,b,c,p;
cin>>a>>b>>c;
p=(a+b+c)/2;
cout<<setprecision(1)<<fixed<<sqrt(p*(p-a)*(p-b)*(p-c))<<endl;
return 0;
}
备注:
如果题目不保证三条边 a,b,c 能构成三角形,就必须先检查是否能形成三角形。能形成三角形的条件是两短边之和大于长边。即 a+b > c 。
习题 2-3
cin,cout改用scanf,printf输入输出。(略)
习题 2-4
阅读以下程序,猜测结果,并上机验证。
#include<cstdio>
using namespace std;
int main()
{
float a=0.1;
printf("%f \n",2-a*a*100);
printf("%.16f \n",2-a*a*100);
printf("%d \n",int(2-a*a*100));
printf("%d",int(2-a*a*100+0.5));
return 0;
}
输出:
1.000000
0.9999998807907104
0
1
浮点数的误差造成int向下取整,所以为0。所以int取整都+0.5,保证四舍五入。
习题 2-5
小玉买文具(洛谷P1421)。
班主任给小玉一个任务,到文具店里买尽量多的签字笔。已知一只签字笔的价格是 1 元 9 角,而班主任给小玉的钱是 a 元 b 角,小玉想知道,她最多能买多少只签字笔呢。
输入格式
输入只有一行两个整数,分别表示 a 和 b。
输出格式
输出一行一个整数,表示小玉最多能买多少只签字笔。
输入输出样例
| 输入 | 输出 |
|---|---|
10 3 |
5 |
说明/提示
数据规模与约定
对于全部的测试点,保证$ 0 \leq a \leq 10^4 $,$0 \leq b \leq 9 $。
建模分析:
将元和角转换成统一用角来计算,这样一直签字笔就是19角,小玉有 a*10 + b
角,那么答案就转换成求算式: (a*10+b)/19 的结果了。
解答
#include<iostream>
using namespace std;
int a,b;
int main()
{
cin>>a>>b;
cout<<(a*10+b)/19;
return 0;
}
习题 2-6
Apples Prologue(洛谷P5709)
八尾勇喜欢吃苹果。她现在有
$ m(m\le 100) $个苹果,吃完一个苹果需要花费$ t(0 \le t \le100) $分钟,吃完一个后立刻开始吃下一个。现在时间过去了$ s(s\le 10000) $分钟,请问她还有几个完整的苹果?
输入格式
输入三个非负整数表示 m 、t 和 s。
输出格式
输出一个整数表示答案。
如果你出现了 RE,不如检查一下被零除?
输入输出样例
| 输入 | 输出 |
|---|---|
50 10 200 |
30 |
建模分析:
- 整体来看还是一个除法运算,需要注意的就是问的是剩下几个完整苹果,所以未吃完的也要扣掉。
- 另外一个就是最少剩下也是0,不能吃成负数。
解答
#include<iostream>
using namespace std;
int m,t,s,n;
int main()
{
cin>>m>>t>>s;
if(s>0)
{
if(t>0)
{
n=s/t;
if(s%t>0)
n=n+1;
}
else
n=m;
}
else
n=0;
n=m-n;
if(n<0)
n=0;
cout<<n;
}
习题 2-7
对角线(洛谷P2181)
对于一个 n 个顶点的凸多边形,它的任何三条对角线都不会交于一点。请求出图形中对角线交点的个数。
例如,6 边形:

输入格式
输入只有一行一个整数 nn,代表边数。
输出格式
输出一行一个整数代表答案。
输入输出样例
| 输入 | 输出 |
|---|---|
3 |
0 |
6 |
15 |
数据规模与约定
- 对于 50% 的数据,保证 3≤n≤100。
- 对于 100% 的数据,保证
$ 3 \leq n \leq 10^5 $
建模分析:
解答
未完......

浙公网安备 33010602011771号