蓝桥杯 入门训练 BEGIN-3 圆的面积
题干要求:
资源限制
时间限制:1.0s 内存限制:256.0MB
问题描述
给定圆的半径r,求圆的面积。
输入格式
输入包含一个整数r,表示圆的半径。
输出格式
输出一行,包含一个实数,四舍五入保留小数点后7位,表示圆的面积。
说明:在本题中,输入是一个整数,但是输出是一个实数。
对于实数输出的问题,请一定看清楚实数输出的要求,比如本题中要求保留小数点后7位,则你的程序必须严格的输出7位小数,输出过多或者过少的小数位数都是不行的,都会被认为错误。
实数输出的问题如果没有特别说明,舍入都是按四舍五入进行。
样例输入
4
样例输出
50.2654825
数据规模与约定
1 <= r <= 10000。
提示
本题对精度要求较高,请注意π的值应该取较精确的值。你可以使用常量来表示π,比如PI=3.14159265358979323,也可以使用数学公式来求π,比如PI=atan(1.0)*4。
解析:
本题看上去只要获取半径r的值,然后套用圆面积计算公式即可。但是真正上手敲代码时还是愣了一下,我卡壳的地方是这两处:
1、高精度的 Pi 如何获取
2、圆面积保留小数点后7位如何表示
这两处其实也是题干中指出的注意点。只要解决了这两点,那么本题其实是没难度的。
代码:
# 导入Python内置模块math,获取高精度的Pi
import math
# 获取半径r的值
r = int(input())
# 计算圆面积
area = math.pi * r * r
# 打印圆的面积
print('{:.7f}'.format(area))
关于上面提到的卡壳点:
1、高精度的Pi可以从Python内置模块math中获取,math.pi 就是我们要的Pi
2、保留小数点后7位输出,通过格式化字符串来实现,这里我是用字符串相关的format函数进行格式化的。也可以使用C风格的 %f 这种语句,看个人习惯吧。
扩展一下:
我个人也刚开始备考蓝桥杯,今天算是正儿八经做题的第二天,因此我自己对如何备考也有一些迷茫,比如有一点,就是Python组不能使用第三方库,只能使用Python内置的模块做题,这里就牵扯到我到底要学习哪些内置模块呢?我的想法是通过做题来发现自己需要掌握的模块,比如本题用到了math模块,那么闲暇之余就可以通过Python文档来学习一下math模块的基本用法。
1、math.pi 作为math模块的常量出现,具体精确到小数点后15位
3.141592653589793
2、数字保留小数点后X位方式——格式化字符串
'{:.Xf}'.format(num)
# X为需要保留的小数点后位数
# 假设我们保留 pi 的小数点后10位输出
print('{:.10f}'.format(math.pi))
3.1415926536
可以发现,格式化字符串输出,不是简单地“截断”,而是采用四舍五入的方式,非常符合做题的需要