1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| import math
""" 编程实现割圆法计算圆周率,并输出分割不同次数时边数、圆周率值以及计算所得圆周率值与math库中的圆周率值的偏差。 """
def cutting_circle(n): """接收表示分割次数的整数n为参数,计算分割n次时正多边形的边数和圆周率值,返回边数和圆周率值""" side_length = 1 edges = 6
for i in range(n): edges *= 2 side_length = math.sqrt(2 - 2 * math.sqrt(1 - (side_length / 2) ** 2))
pi = (edges * side_length) / 2
return edges, pi
if __name__ == "__main__": times = int(input())
edges, pi = cutting_circle(times) print(f"分割{times}次,边数为{edges},圆周率为{pi:.6f}") print(f"math库中的圆周率常量值为{math.pi:.6f}")
|