Problem C: 円周率

東京大学合格を目指す高校生のきたまさ君は東大入試の過去問で次のような問題を見つけた。

「円周率が3.05より大きいことを証明せよ。」

数学がとても得意なきたまさ君は、直径1の円に内接する正八角形の周囲の長さを求めればよいことに一瞬で気がついた。

きたまさ君はプログラミングも得意なので、問題を一般化し、直径1の円に内接する正n角形の周囲の長さを求めるプログラムを書く事にした。

Input

入力は 1 行のみからなり、その行には 1 つの自然数 n が含まれる。 (3 ≤ n ≤ 100)

Output

直径1の円に内接する正n角形の周囲の長さを一行に出力せよ。 出力する値は10-3以下の誤差を含んでいても構わない.値は小数点以下何桁表示しても構わない。

Sample Input 1

8

Output for Sample Input 1

3.0615

Sample Input 2

6

Output for Sample Input 2

3.0000

Sample Code in C

#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;
}

Sample Code in C++

#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;
}

Sample Code in Java

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);
    }

}

Problemsetter: Yoichi Iwata