杭电 2068 ( RPG的错排 ) 排列组合+错排

来源:互联网 发布:plc与单片机应用场合 编辑:程序博客网 时间:2024/04/30 04:02
#include<stdio.h>__int64 sum,f[30];int main()  {  __int64 C_n_m(int n,int m);    int n;      int i;       f[0]=0; f[1]=0; f[2]=1;    for(i=3; i<=25; i++)          f[i]=(i-1)*(f[i-1]+f[i-2]);    while(~scanf("%d",&n))      {          __int64 sum=0;          if(n==0)              break;          else          {              for(i=0; i<=n/2; i++)                  sum+=f[i]*C_n_m(n,i);          }          printf("%lld\n",sum+1);//当全部答对时f[0]=1,因此要加1.      }  return 0;}__int64 C_n_m(int n,int m)  {      __int64 i,up,down;//分子,分母      up=down=1;      for(i=n;i>=n-m+1;i--)          up*=i;      for(i=m;i>=1;i--)          down*=i;      return up/down;  }  

0 0
原创粉丝点击