Contest3303 - 2022跟随唐克练编程之《顺序结构》(upc)c++

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;	
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值