第1关:割圆法
编程要求
根据提示,在右侧编辑区补充代码,编程实现割圆法计算圆周率,输出在正六边形基础上分割n次时得到多边形的边数、圆周率值以及math库中的圆周率值。
测试说明
平台会对你编写的代码进行测试:
输入格式
输入为一行,一个正整数n ,表示在内接正六边形的基础上割圆的次数。
输出格式
输出为两行,第一行输出在内接正六边形基础上再次分隔n次,分隔得到的正多边形的边数m,以及割圆法计算得到的圆周率pi(保留六位小数);第二行输出math库里的pi值(保留六位小数)。
具体输出格式见示例。
示例
输入:
4
输出:
分割4次,边数为96,圆周率为3.141032
math库中的圆周率常量值为3.141593
'''
编程实现割圆法计算圆周率,并输出分割不同次数时边数、圆周率值以及计算所得圆周率值与math库中的圆周率值的偏差。
'''
import math
def cutting_circle(n): # n为分割次数
"""接收表示分割次数的整数n为参数,计算分割n次时正多边形的边数和圆周率值,返回边数和圆周率值"""
side_length = 1 # 初始边长
edges = 6 # 初始边数
# 补充你的代码
#######################Begin############################
# 补充你的代码
edges=edges*(2**n) #分割后的边数
def length(x):
h=math.sqrt(1-(x/2)**2)
CD=1-h
AD=math.sqrt((x/2)**2 + CD**2)
return AD
for i in range(n):
side_length=length(side_length)
pi=side_length*edges/2
#pri

最低0.47元/天 解锁文章
1131

被折叠的 条评论
为什么被折叠?



