求组合数m_n
2024-10-08 22:10:28
下面为求取组合数的代码:
#include <stdio.h>
#define MAX 10009
int prime[];
void print(int *v, int length)
{
int i = ;
for (; i < length; i++)
printf("%d ", v[i]);
putchar('\n');
} int getPrime()
{
int i = , k = ;
int j = ;
int flag;
prime[] = ;
for (; i < ; i++) {
for (flag = , j = ; j < k; j++) {
if (i % prime[j] == ) {
flag = ;
break;
}
}
if (!flag)
prime[k++] = i;
}
print(prime, );
} int comb(int m, int n)
{
int count[] = { };
int i = , j = ;
int mm;
int mul = , tmp;
for (i = m; i > m - n; i--) {
mm = i;
for (j = ; mm != ; j++) {
if (mm % prime[j] == ) {
mm /= prime[j];
++count[j];
--j;
}
}
}
for (i = n; i >= ; i--) {
mm = i;
for (j = ; mm != ; j++)
if (mm % prime[j] == ) {
mm /= prime[j];
--count[j];
--j;
}
}
for (i = ; i < ; i++) {
tmp = count[i];
while (tmp) {
mul = (mul * prime[i]) % MAX;
tmp--;
}
}
return mul;
} int main()
{
getPrime();
printf("%d\n", comb(, ));
return ;
}
最新文章
- zb的生日
- iOS 中contraints居中对齐的一点心得
- How To Set Up Apache with a Free Signed SSL Certificate on a VPS
- 【HDOJ】2828 Lamp
- SQL约束和字段约束的创建和删除
- 关于Spring中的PagedListHolder分页类的分析
- ASP.NET程序读取二代身份证(附源码)
- 【2017-06-01】Linq基础+Lambda表达式实现对数据库的增删改查
- javascript之DOM编程根据属性找标签练习
- Dubbo Mesh 在闲鱼生产环境中的落地实践
- Python复习笔记(五)面向对象
- models.doc2vec – Deep learning with paragraph2vec
- c++10进制转换为任意2-16进制数字
- centos7 MFS drbd keepalived
- Leetcode 1022. Sum of Root To Leaf Binary Numbers
- python列表学习
- 关于linux下crontab mysql备份出来的数据为0字节的问题
- STS(Spring Tool Suite)使用maven添加jar包
- 超简单CSS3实现圆角、阴影、透明效果
- 两个不同vim之间复制内容