NYOJ459快速组合数

简介: #include int main() { int m,n,a,b;int ans=1; scanf("%d%d",&n,&m); a=n-m+1; b=1; while(a
#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;
}

  

目录
相关文章
|
11月前
一个求公约数和公倍数的有趣求法
一个求公约数和公倍数的有趣求法
54 0
Indivisibility——容斥原理的应用
题目描述 给一个数n,找出1 ~ n 范围内不被 2 ~ 10整除的数的个数
100 0
|
人工智能 算法 机器人
容斥原理
容斥原理   对容斥原理的描述   容斥原理是一种重要的组合数学方法,可以让你求解任意大小的集合,或者计算复合事件的概率。   描述          容斥原理可以描述如下:            要计算几个集合并集的大小,我们要先将所有单个集合的大小计算出来,然后减去所有两个集合相交的部分,再加回所有三个集合相交的部分,再减去所有四个集合相交的部分,依此类推,一直计算到所有集合相交的部分。
2186 0
|
机器学习/深度学习
LCM性质 + 组合数 - HDU 5407 CRB and Candies
CRB and Candies Problem's Link  Mean:  给定一个数n,求LCM(C(n,0),C(n,1),C(n,2)...C(n,n))的值,(n
1014 0
|
人工智能
NYOJ 451(组合数+全错位)
  光棍节的快乐 时间限制:1000 ms | 内存限制:65535 KB 难度:2   描述 光棍们,今天是光棍节。聪明的NS想到了一个活动来丰富这个光棍节。 规则如下: 每个光棍在一个纸条上写一个自己心仪女生的名字,然后把这些纸条装进一个盒子里,这些光 棍依次抽取一张纸条,如果上面的名字就是自己心仪的女生,那么主持人就在现场给该女生打电话,告诉这个光棍对她的爱慕之情,并让光棍当场表白,并得到现场所有人的祝福,没抽到的,嘿嘿就可以幸免了。
783 0
|
机器学习/深度学习 人工智能
NYOJ 488(素数环)
#include #include #include int a[21],visited[21],N; int is_prime(int k) { int i; for(i=2;i*i
812 0
|
机器学习/深度学习 人工智能
NYOJ 33(回转填数)
  回转填数(题目叫蛇形填数) 时间限制:3000 ms | 内存限制:65535 KB 难度:3   描述 在n*n方陈里填入1,2,...,n*n,要求填成蛇形。例如n=4时方陈为:10 11 12 19 16 13 28 15 14 37 6 5 4  输入 直接输入方陈的维数,即n的值。
852 0
NYOJ 24(素数距离)
  素数距离问题 时间限制:3000 ms | 内存限制:65535 KB 难度:2   描述 现在给出你一些数,要求你写出一个程序,输出这些整数相邻最近的素数,并输出其相距长度。
803 0