• NYOJ459快速组合数


    #include<stdio.h>
    int main()
    {
    	int m,n,a,b;int ans=1;
    	scanf("%d%d",&n,&m);
    	a=n-m+1;
    	b=1;
    	while(a<=n&&b<=m)
    	{
    		ans=ans*a/b;
    	//	printf("%d	%d	%d\n",a,b,ans);//调试
    		a++;
    		b++;
    	}
    	printf("%d\n",ans);
    	return 0;
    }
    
    //c(8,3)=6*7*8/(1*2*3)
    
    
    
    第二种方法
    c(n,m)=n!/(m!*(n-m)!)
    第三种递归
    #include<stdio.h>
    #define ERROR 0
    int fun(int n,int r)
    {
     if(n<r)
      return ERROR;//ERROR先要预先定义,不知为啥,分号为英文状态下,刚开始没想起n<r的情况,也必须加上n==r的情况,否则错误。
     else 
     {if(1==n||0==r||n==r)
      return 1;
     
     else
      return (fun(n-1,r-1)+fun(n-1,r));
     }
    }
    int main()
    {
     int n,r;
     scanf("%d%d",&n,&r);
     printf("%d\n",fun(n,r));
     return 0;
    }
    

      

  • 相关阅读:
    每日总结4.25
    每日总结4.24
    每日总结4.23
    每日博客4.22
    每日博客4.21
    每日博客4.20
    每日总结4.19
    每日总结4.16
    每日总结4.15
    每日总结4.14
  • 原文地址:https://www.cnblogs.com/hxsyl/p/2498450.html
Copyright © 2020-2023  润新知