解决斐波那契数列(5)变形——年终聚会
时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小)
题目描述
今年公司年会的奖品特别给力,但获奖的规矩却很奇葩:
- 首先,所有人员都将一张写有自己名字的字条放入抽奖箱中;
- 待所有字条加入完毕,每人从箱中取一个字条;
- 如果抽到的字条上写的就是自己的名字,那么“恭喜你,中奖了!”
现在告诉你参加晚会的人数,请你计算有多少概率会出现无人获奖?
输入描述:
输入包含多组数据,每组数据包含一个正整数n(2≤n≤20)。
输出描述:
对应每一组数据,以“xx.xx%”的格式输出发生无人获奖的概率。
输入例子:
2
输出例子:
50.00%
#include<stdio.h> int main() { long der[21] = { 0,0,1 }, fun[21] = { 0,1,2 }; int i, n; for (i = 3; i < 21; i++) { der[i] = (i - 1) * (der[i - 2] + der[i - 1]); fun[i] = i*fun[i - 1]; } while (~scanf("%d", &n)) { printf("%.2f%c\n", 1.0*der[n] /fun[n] * 100, '%'); } return 0;}
这是斐波那契数列的变体