码迷,mamicode.com
首页 > 其他好文 > 详细

hdu 2048

时间:2016-03-01 14:12:39      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:

PS:WA了两次...主要是没注意到fac的大小好像只能写到9...要用long long型递归求阶乘...

      然后就是错排公式...百度下..

代码:

#include "stdio.h"
long long dp[30];
long long fac[30];
int main(){
 int n,a,i;
 dp[0]=0;
 dp[1]=1;
 fac[0]=1;
 fac[1]=1;
 fac[2]=2;
 //dp[1]=0;
 //dp[2]=1;
 for(i=2;i<30;i++){
  dp[i]=i*(dp[i-1]+dp[i-2]);
  fac[i+1]=fac[i]*(i+1);
 }
 scanf("%d",&n);
 while(n--){
  scanf("%d",&a);
  printf("%.2lf%%\n",(double)dp[a-1]/fac[a]*100.0);
 }
 return 0;
}

hdu 2048

标签:

原文地址:http://www.cnblogs.com/sureli/p/5230724.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!