排列組合問題: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;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM