Contest3303 - 2022跟随唐克练编程之《顺序结构》(upc)c++
问题 D: 面积201502
题目描述
给出一条长度是L米的铁丝,L是正整数,而且L是偶数。现在用它来做一个长方形,长方形的长度和宽度必须是整数,那么长方形的最大面积是多少?
输入
一个正整数L。
输出
一个正整数,表示长方形的最大面积。
样例输入 Copy
20
样例输出 Copy
25
提示
1、正方形也可以被认为是长方形。
2、长方形的长和宽尽量接近,才能使得面积最大。
对于样例:长方形的长和宽都是5,那样面积最大,面积是25。
对于80%的数据,10<=L<=200,数据保证L是偶数。
对于100%的数据,10 <= L <= 1000,数据保证L是偶数。
思路:
这道题比较水,但开始还是想了一会,这个用了一个数学上的点,如果a+b=l,当a=b的时候,a*b最大。因此,只需确保长和宽是最接近的,围成的面积也就最大。
代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
int l;
cin>>l;
int t=l/2; //找中间值
cout<<(t/2)*(t-t/2);
return 0;
}
问题 E: 三角形面积
题目描述
输入三角形三边长a,b,c(保证能构成三角形),输出三角形面积。
输入
一行三个用一个空格隔开的实数a,b,c(1<=a,b,c<=10000),表示三角形的三条边长。
输出
输出三角形的面积,答案保留四位小数。
样例输入 Copy
3 4 5
样例输出 Copy
6.0000
为什么要写这道题呢,因为我记不住海伦公式,所以加深下印象。
代码:
```cpp
#include <bits/stdc++.h>
using namespace std;
int main(){
double a,b,c,p;
cin>>a>>b>>c;
p=(a+b+c)/2.0*1.0;
double s;
s=sqrt(p*(p-a)*(p-b)*(p-c));
printf("%.4lf",s);
}
问题 AK: 伊顿公学
题目描述
伊顿公学(Eton College)坐落在距伦敦20英里的温莎小镇,是英国最著名的贵族中学,排名全球第一。伊顿以“精英摇篮”、“绅士文化”闻名世界,也素以军事化的严格管理著称,是英国王室、政界经济界精英的培训之地。这里曾造就过20位英国首相,培养出了诗人雪莱、经济学家凯恩斯,演员汤姆·希德勒斯顿、埃迪·雷德梅恩,还有“站在食物链顶端的男人”贝尔·格里尔斯,也是威廉王子和哈里王子的母校。伊顿每年250名左右的毕业生中,70余名进入牛津、剑桥,70%进入世界名校。本问题就是输入某年的毕业生人数m和进入某名校的百分比n,计算出进入该名校的学生人数count。
输入
输入两个整数m和n,分别表示某年的毕业生人数和该年度进入名校的百分比(200<m<300,0<n<100)。
输出
输出一个整数count,表示该年度进入该名校的学生人数,人数向上取整。
样例输入 Copy
260,7
样例输出 Copy
19
思路:
主要这个向上取整有点麻烦,所以直接向师哥请教了一个很方便的函数:ceil和floor。前者是向上取整,后者向下取整。剩下的就很好做了。
代码:
下面展示一些 内联代码片
。
#include <bits/stdc++.h>
using namespace std;
int main(){
int m,n;
scanf("%d,%d",&m,&n); //注意题目要求输入有一个“,”
cout<<ceil(m*n*0.01);
}
问题 BL: 选组长
题目描述
Alice是班上的数学课代表,她现在想从班上选出两名组长来帮她收发作业(可以选Alice自己)。Alice的班级可以按区域分为四个大组,每个大组分别有a,b,c,d名同学,Alice在其中一个组中。为了避免收发作业时两名组长位置重叠,Alice决定这选出来的两名组长不能在同一个大组中。现在她想问你,她有多少种选组长的方式?
输入
第一行输入四个整数a,b,c,d
输出
输出包含一个整数,代表Alice可能的方案总数
样例输入 Copy
1 2 1 0
样例输出 Copy
5
提示
假设第一大组的同学为Alice,第二大组为Bob, Lucy。
第三大组为Tom。
则所有可能的组长为:Alice, Bob.
Alice, Lucy.
Bob, Tom.
Alice, Tom.
Lucy Tom.
数据范围与约定
题目包含10个测试点。
对于第1,2,3测试点,满足c = d = 0。
对于第4,5,6测试点,满足a,b,c,d ≤ 10000。
对于所有测试点,满足0 ≤ a,b,c,d ≤ 100000
思路:
这道题我开始一直在想怎么排列组合它,但这道题因为只有4组可以直接算这个组数,再注意一下这个范围用longlong(是的,我又又又栽到这个坑里了)。
代码:
#include <bits/stdc++.h>
using namespace std;
int main(){
long long a,b,c,d; //int范围小了
cin>>a>>b>>c>>d;
long long s;
s=a*b+a*c+a*d+b*c+b*d+c*d;
cout<<s;
}