7-1 sdut-C语言实验-计算组合数

简介: 7-1 sdut-C语言实验-计算组合数

7-1 sdut-C语言实验-计算组合数


分数 20


全屏浏览


切换布局


作者 马新娟


单位 山东理工大学


计算组合数。C(n,m),表示从n个数中选择m个的组合数。


计算公式如下:


若:m=0,C(n,m)=1


否则, 若 n=1,C(n,m)=1

否则,若m=n,C(n,m)=1

否则 C(n,m) = C(n-1,m-1) + C(n-1,m)


###输入格式:

第一行是正整数N (1 <= N<= 100),表示有N组要求的组合数。


接下来N行,每行两个整数n,m (0 <= m <= n <= 20)。


###输出格式:

输出N行。每行输出一个整数表示C(n,m)。


###输入样例:

1. 3
2. 2 1
3. 3 2
4. 4 0

###输出样例:

1. 2
2. 3
3. 1


代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

栈限制

8192 KB


#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int f(int n, int m);
int main()
{
    int t, m, n, res;
    scanf("%d", &t);
    for (int i = 0; i < t; i++)
    {
        scanf("%d %d", &n, &m);
        res = f(n, m);
        printf("%d\n", res);
    }//max
    return 0;
}
int f(int n, int m)
{
    if (m == 0 || n == 1 || m == n)
        return 1;
    return f(n-1, m-1) + f(n-1, m);
}
目录
相关文章
|
6月前
7-2 sdut-C语言实验-删数问题(贪心法二)
7-2 sdut-C语言实验-删数问题(贪心法二)
43 2
|
6月前
|
BI
7-7 sdut-C语言实验-上升子序列
7-7 sdut-C语言实验-上升子序列
32 0
|
6月前
7-5 sdut-C语言实验-最长公共子序列
7-5 sdut-C语言实验-最长公共子序列
70 0
|
6月前
7-4 sdut-C语言实验-区间覆盖问题
7-4 sdut-C语言实验-区间覆盖问题
41 2
|
6月前
7-1 sdut-C语言实验-递归的函数
7-1 sdut-C语言实验-递归的函数
34 2
|
6月前
|
算法
7-2 sdut-C语言实验-数字三角形问题
7-2 sdut-C语言实验-数字三角形问题
34 1
|
6月前
7-10 sdut-C语言实验-走迷宫
7-10 sdut-C语言实验-走迷宫
34 2
|
6月前
|
开发工具 git
7-4 sdut-C语言实验-最长公共子序列
7-4 sdut-C语言实验-最长公共子序列
60 1
|
6月前
7-8 sdut-C语言实验-装船问题分数
7-8 sdut-C语言实验-装船问题分数
30 0
|
6月前
7-3 sdut-C语言实验-王奶奶分茶叶蛋
7-3 sdut-C语言实验-王奶奶分茶叶蛋
33 0