東京大学合格を目指す高校生のきたまさ君は東大入試の過去問で次のような問題を見つけた。
「円周率が3.05より大きいことを証明せよ。」
数学がとても得意なきたまさ君は、直径1の円に内接する正八角形の周囲の長さを求めればよいことに一瞬で気がついた。
きたまさ君はプログラミングも得意なので、問題を一般化し、直径1の円に内接する正n角形の周囲の長さを求めるプログラムを書く事にした。
入力は 1 行のみからなり、その行には 1 つの自然数 n が含まれる。 (3 ≤ n ≤ 100)
直径1の円に内接する正n角形の周囲の長さを一行に出力せよ。 出力する値は10-3以下の誤差を含んでいても構わない.値は小数点以下何桁表示しても構わない。
8
3.0615
6
3.0000
#include <stdio.h> #include <math.h> int main() { int n; scanf("%d", &n); printf("%.10f\n", n * sqrt(2 - 2 * cos(2 * M_PI / n)) / 2); return 0; }
#include <iostream> #include <cmath> #include <iomanip> using namespace std; int main() { int n; cin >> n; cout << fixed << setprecision(10) << n * sqrt(2 - 2 * cos(2 * M_PI / n)) / 2 << endl; return 0; }
import java.util.*; import static java.lang.Math.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); System.out.printf("%.10f%n", n * sqrt(2 - 2 * cos(2 * PI / n)) / 2); } }