小N最近在便利店买东西,找零的时候获得了许多5毛钱的黄色硬币,小N是一个顽皮贪玩的孩子,拿着硬币边走边抛着玩,可是不小心丢在MikeZ的头上了。哎哟~~~~~~~ MikeZ表示不能忍了,作为数学迷的他决定让小N回答一个硬币相关的问题,如果小N回答不出来,就暴打小N一顿。
问题是这样的:抛一枚硬币2n次,出现正面向上的次数多于反面向上的次数的概率为多少?
小N是一个数学渣,但是又不想被打得鼻青脸肿。于是请你来帮助他,可怜可怜小N吧~
输入
输入数据有多组,每组一行,包括一个整数n (1<= n <= 20)
输出
对于每个测试实例,要求输出一个答案,即所求的概率。每个输出占一行,答案表示为百分数形式,保留一位小数。
样例输入
1
样例输出
25.0%
代码:
#include <iostream>
#include <stdio.h>
using namespace std;
double f(int n,int c)
{
int i;
double temp=1;
for(i=1;i<=n;i++)
{
temp*=((double)c/(double)i);
c--;
}
return temp;
}
int main()
{
int n,count=0;
double sum[1000];
double s[1000];
while((scanf("%d",&n))!=EOF)
{
int i;
sum[count]=1;
s[count]=0;
for(i=n+1;i<=2*n;i++)
{
s[count]+=(double)f(i,2*n);
}
for(i=1;i<=2*n;i++)
{
sum[count]*=2.0;
}
count++;
}
int i=0;
while(i<count)
{
printf("%.1lf%\n",(s[i]/sum[i])*100);
i++;
}
return 0;
}