排列组合问题:n个数中取k个数
Posted 蜗牛不快
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排列组合问题:n个数中取k个数相关的知识,希望对你有一定的参考价值。
/***********************************
*有0~n-1共n个数,从其中任取k个数,
*已知这k个数的和能被n整除,求这样的
*k个数的组合的个数sum,
*输入:n,k
*输出:符合条件的个数sum
************************************/
#include <malloc.h>
#include <iostream>
#include <stdio.h>
using namespace std;
int k, *a, n;
int sum = 0;//记录符合条件的个数
void combination(int p, int m)
{
int i;
int temp;
if (m < k)
{
for (i = p - 1; i >= k - m - 1; i--)
{
a[m] = i;
combination(i, m + 1);
}
}
else
{
temp = 0;
for (i = 0; i < k; i++)
{
temp += a[i];
cout << a[i];
}
if (temp%n == 0)
{
sum++;
}
cout << endl << temp << endl;
}
}
int main()
{
// int n;
scanf_s("%d%d", &n, &k);
a = (int*)malloc(sizeof(int)*k);
combination(n, 0);
cout << sum << endl;
system("pause");
return 0;
}
以上是关于排列组合问题:n个数中取k个数的主要内容,如果未能解决你的问题,请参考以下文章