这道题目关于多边形的角度的一些性质的挖掘!
题目描述
某年某月某日,琪仔get到了一款十分精美的天花板图案的设计图纸。
图案的框架最初是一个正n边形,之后以它的n条边的中点为顶点构成一个新的正n变形。如此重复多次后,就能得到天花板图案的框架了。
不要问重复多少次,问就是无限重复。。。
给定n,求生成的图案的框架所有边的长度总和(最初正n边形每条边的边长均为100)。
输入描述:
多组测试(不多于100组),每组一行一个整数n( 2 < n <= 100),表示正多边形的边数。
输出描述:
对于每组测试,输出一行一个结果,四舍五入保留两位小数。(请用较为简洁的计算方式,以减少误差)
示例1
输入
3
4
50
输出
600.00
1365.69
2533863.09
数学结论:设一个正n边形的周长为C1=C,若以它的n条边的中点为顶点构造一个新的正n边形,则C2=C1*cos(pi/n),以此类推:Cn+1=Cn*cos(pi/n).
代码实现:
1 #include<bits/stdc++.h> 2 using namespace std; 3 const double pi=acos(-1);//圆周率! 4 5 int main() 6 { 7 double n; 8 while(cin>>n) 9 { 10 double tot=100.0*n,ans=100.0*n; 11 double du=pi/n; 12 while(tot>=1e-10) 13 { 14 tot*=cos(du); 15 ans+=tot; 16 } 17 printf("%.2f ",ans);//简短精悍的输出 18 } 19 return 0; 20 }