码迷,mamicode.com
首页 > 其他好文 > 详细

排列组合问题:n个数中取k个数

时间:2017-06-17 18:31:13      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:ati   --   using   问题   return   malloc   ***   else   条件   

/***********************************
*有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个数

标签:ati   --   using   问题   return   malloc   ***   else   条件   

原文地址:http://www.cnblogs.com/Wlnhome/p/7040636.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!