82: 求组合数

简介: 82: 求组合数
题目描述

编写一个函数,求从n 个不同的数中取r 个数的所有选择的个数。

输入

输入n 和r 的值; 当用户输入0 0 时,程序结束。

输出

根据公式: C(n,r) = C(n, r-1) * (n - r + 1) / r 输出运算结果 输入数据不满足题意时候,输出"error!"

样例输入复制

5 3

10 20

50 3

0 0

样例输出复制

10

error!

19600


def factorial(n):
    s=1
    for i in range(1,n+1):
        s=s*i
    return s
while True:
    try:
        n,r=map(int,input().split())
        if n<r:
            print("error!")
        elif n==0 and r==0:
            break
        else:
            res=factorial(n)//factorial(n-r)//factorial(r)
            print(res)
    except EOFError:
        break
相关文章
|
6天前
|
算法 测试技术 C++
【状态压缩 容斥原理 组合数学】3116. 单面值组合的第 K 小金额
【状态压缩 容斥原理 组合数学】3116. 单面值组合的第 K 小金额
【状态压缩 容斥原理 组合数学】3116. 单面值组合的第 K 小金额
|
6天前
|
算法 测试技术 C++
【组合数学】【动态规划】【前缀和】1735生成乘积数组的方案数
【组合数学】【动态规划】【前缀和】1735生成乘积数组的方案数
|
10月前
|
算法 内存技术
求组合数三种算法
求组合数三种算法
51 0
|
人工智能
Leetcode53/152—最大子数组和/最大子数组乘积(状态转移方程/不熟)
Leetcode53/152—最大子数组和/最大子数组乘积(状态转移方程/不熟)
子数组问题总结(很多子数组求法类似,暴力求法)
子数组问题总结(很多子数组求法类似,暴力求法)
子数组问题总结(很多子数组求法类似,暴力求法)
康托展开公式与全排列应用
康托展开公式与全排列应用
100 0