目录
Problem 3567 浮点数
一 题目内容
时间:0.2s 空间:32M
题目描述:
小鹦鹉正在学习浮点数,你跟他说一个浮点数,他立刻就能学会。
输入一个浮点数,输出这个浮点数。
输入格式:
输入一个浮点数
输出格式:
输出一个浮点数,保留三位小数
样例输入1:
1.123456
样例输出1:
1.123
样例输入2:
1.359578
样例输出2:
1.360
二 新知识点
2.1 对浮点数精度要求的处理与另一种标准输出
本题中,对浮点数的精度有“保留三位小数”的要求。这时,较简便的处理方法是使用printf()。使用它,您可以拼接不同类型的变量,如:
int a=1;
double b=2.1234567;
//使用printf()拼接a和b
printf("%d's type is int, while %.3lf's type is double.",a,b);
输出如下:
1's type is int, while 2.123's type is double.
printf()首先接收一个字符串。字符串中的%d表示整数(int类型),%lf表示浮点数(double类型)。使用“%.lf”可指定浮点数用四舍五入法保留
位小数输出。
printf()的输出是标准输出,因此可以被OJ网站读取,并且不会因此出现“本地的输出没问题,但在OJ上却报错”的情况。
三 思路
使用cin进行输入,并用printf()进行输出。
四 AC代码
#include<bits/stdc++.h>
using namespace std;
int main(){
double a;
cin>>a;
printf("%.3lf",a);
return 0;
}
Problem 3572 浮点除法
一 题目内容
时间:0.2s 空间:32M
题目描述:
输入两个整数a, b, 输出a除以b的值,保留三位小数
输入格式:
输入两个整数
输出格式:
输出一个浮点数
样例输入:
5 2
样例输出:
2.500
二 新知识点
本题无新知识点。
三 思路
先直接算除法,再保留3位小数输出。
四 AC代码
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,b;
cin>>a>>b;
printf("%.3lf",1.0*a/b);
return 0;
}
Problem 8355 欧几里得距离
一 题目内容
时间:0.2s 空间:32M
题目描述:
小C有一个平面!
它发现了平面上的两个点,请你求出求它们之间的欧几里德距离。欧几里德距离定义为连接这两个点的线段的长度。
答案保留两位小数输出。
输入格式:
四个整数,a,b,c,d。坐标为(a,b)与(c,d)
输出格式:
输出这两个点的欧几里德距离。
样例输入:
0 0 3 4
样例输出:
5.00
约定:
0<=a,b,c,d<=100
二 新知识点
2.1 直角坐标平面内两点的距离公式
如图,在直角坐标平面内有两个点。我们可以求出
1.;
2.。
由勾股定理,、
两点的距离
。
三 思路
套用两点的距离公式后,保留2位小数输出。
四 AC代码
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,b,c,d;
cin>>a>>b>>c>>d;
printf("%.2lf",sqrt((a-c)*(a-c)+(b-d)*(b-d)));
return 0;
}
Problem 3542 摄氏温度转换
一 题目内容
时间:0.2s 空间:32M
题目描述:
输入一个浮点数, 表示华氏温度, 输出对应的摄氏温度
,
。
输入格式:
输入一个浮点数
输出格式:
输出浮点数,保留3位小数
样例输入:
100
样例输出:
37.778
约定:
二 新知识点
本题无新知识点。
三 思路
依题意运算即可。
四 AC代码
#include<bits/stdc++.h>
using namespace std;
int main(){
double f,c;
cin>>f;
c=f*5.0/9.0+32.0;
printf(".3lf",c);
return 0;
}
Problem 9215 圈地
一 题目内容
时间:0.2s 空间:32M
题目描述:
小A要在墙角圈一块长方形地,我们认为墙面无限长。现在小A手里只有长度为w的绳子,问最多能圈面积多大的地。保证w为偶数。
输入格式:
一行一个不超过100的正整数,表示绳长。
输出格式:
一行一个整数,表示地的最大面积。
样例输入:
10
样例输出:
25
二 新知识点
本题没有新知识点。
三 思路
如图,红色为墙,蓝色部分是一个边长为的正方形,黑色部分是一个长为
,宽为
的长方形(
)。下面证明蓝色部分的面积永远大于黑色部分的面积:
蓝色部分的面积为:;
黑色部分的面积为:。
黑色部分的面积小于蓝色部分的面积。
因此,蓝色部分的面积最大,输出这个面积即可。
又因为为偶数,所以用int类型存储
不会造成精度丢失(请注意int类型的除法只保留整数部分)。
四 AC代码
#include<bits/stdc++.h>
using namespace std;
int main(){
int w;
cin>>w;
cout<<(w/2)*(w/2);
return 0;
}
Problem 9217 吃鸡腿
一 题目内容
时间:0.2s 空间:32M
题目描述:
小A最喜欢吃鸡腿了。现在,炸鸡腿买三送一了!每只鸡腿a元,小A手中有B元。问小A能吃到多少只鸡腿?
输入格式:
一行两个整数a,B。
输出格式:
一行一个整数,表示答案。
样例输入:
1 7
样例输出:
9
二 新知识点
本题无新知识点。
三 思路
先求出小A能买多少鸡腿,再加上送的鸡腿。
四 AC代码
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,B;
cin>>a>>B;
int num=B/a;
cout<<num+num/3;
return 0;
}
Problem 1129 鸡兔同笼
时间:1s 空间:65536K
题目描述:
鸡兔同笼,数数头有x个,数数脚有y只,求鸡和兔各几只?
输入格式:
一行,两个整数x和y。
输出格式:
两行,第一行是鸡的只数,第二行是兔的只数。
样例输入:
40 100
样例输出:
30
10
二 新知识点
2.1 使用标准输出流输出换行符
可以使用cout按如下方法输出换行符:
//例1
cout<<endl;
//例2
cout<<"1"<<endl<<"2";
对于例1,会输出单独的换行符;对于例2,输出如下:
1
2
三 思路
假设所有动物全为鸡,则共有脚只。但所有动物不一定全都是鸡,我们少数了脚
只。因为我们少数的脚是属于兔子的,且每只兔子都被少数了2只脚,因此兔子共
只。随后即可求出鸡的只数。
四 AC代码
#include<bits/stdc++.h>
using namespace std;
int main(){
int x,y;
cin>>x>>y;
int n=(y-2*x)/2; //2*x不要写成2x
cout<<x-n<<endl<<n;
return 0;
}
Problem 3902 分数求和
一 题目内容
时间:1s 空间:256M
题目描述
, 求
的前n项和,答案保留2位小数
输入格式
一个整数n。
输出格式
一个浮点数。
样例输入
10
样例输出
0.91
约定
二 新知识点
2.1 前加加,后加加,前减减,后减减
要把一个int型变量x加1,我们会想到如下代码:
x=x+1;
意思是把x的新值设为原来的x值加1。其实,还有两种写法也可以实现这点:
++x; //前加加
x++; //后加加
其中的++x因为两个加号在前面,因此叫“前加加”;x++同理,叫“后加加”。
同样的,把x减去1也有如下两种写法:
--x; //前减减
x--; //后减减
其中上面一行叫“前减减”,下面一行叫“后减减”。
至于前加加、后加加和前减减、后减减的区别,我们以后遇到了再讲。
2.2 for循环
我们经常需要让程序做类似的事情,显然打很多遍代码不合算,因此有了for循环,格式如下:
for(数据类型 变量=x;循环继续的条件;每次循环后变量进行的变化){
//此处写代码
}
三 思路
先寻找规律:
;
;
,
则第项的分母为
。
找到规律后即可使用for循环,计算的值。
四 AC代码
#include<bits/stdc++.h>
using namespace std;
int main(){
double s=0.0;
int n;
cin>>n;
for(int i=1;i<=n;i++){
s+=1.0/(i*(i+1));
}
printf("%.2lf",s);
return 0;
}