#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 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复