#include<stdio.h>
int array(int, int, int);
int array(int n, int k, int sum) //找出每一种排列方法
{
int count = 0;
if (n == 0 || k == 0)
{
return 1;
}
else
{
count += array(n-1, k, sum+1);
if (sum != 0)
{
count += array(n, k-1, sum-1);
}
}
return count;
}
int main()
{
int m, n, k;
int count;
int num1 = 1, num2 = 1;
scanf("%d%d%d", &m, &n, &k);
if (n < k) //若 一块 的人比 两块 少,直接输出 0
{
printf("0\n");
return 0;
}
for (int i=n; i>0; i--) //相同零钱的不同小孩的排列可能
{
num1 *= i;
}
for (int i=k; i>0; i--)
{
num2 *= i;
}
count = num1 * num2 * array(n, k, 0);
printf("%d\n", count);
return 0;
}
0.0分
0 人评分
Tom数 (C语言代码)浏览:2012 |
简单的a+b (C语言代码)浏览:538 |
C语言程序设计教程(第三版)课后习题9.10 (C语言代码)浏览:604 |
模拟计算器 (C语言代码)浏览:891 |
C语言考试练习题_排列 (C语言代码)浏览:1326 |
C语言程序设计教程(第三版)课后习题6.4 (C语言代码)浏览:651 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:587 |
C语言程序设计教程(第三版)课后习题6.4 (C语言代码)浏览:1040 |
兰顿蚂蚁 (C++代码)浏览:1045 |
C二级辅导-温度转换 (C语言代码)浏览:731 |