杨辉三角形/组合数(python)

发布时间:2026/5/19 8:12:42

杨辉三角形/组合数(python) import sys def combine(n,k)-int: if kn or k0: return 0 if k0 or kn: return 1 dp[[0]*(k1) for _ in range(n1)] #创建dp数组防止越界 dp[0][0]0 for i in range(n1): #遍历每一行 dp[i][0]1 #每一行第一个元素为1 uppermin(i,k) #确定该行可以遍历到什么位置不能超过k和当前i for j in range(1,upper1): dp[i][j]dp[i-1][j-1]dp[i-1][j] #递推式 return dp[n][k] def main(): try: print(请输入) linesys.stdin.readline().strip() #读取一行去掉前后空格返回字符串 if not line: return numslist(map(int,line.split())) #将字符串以空格分开转成int,返回列表 rescombine(nums[0],nums[1]) print(res) return except ValueError: return if __name____main__: main()描述组合数 从n个物品里面选k个共有多少种方法 可以选0个至k个即C(n,k)杨辉三角每行第一个数和最后一个数字都为1dp数组dp[i][j]表示在i个里面选j个有dp[i][j]种方法递推式dp[i][j]dp[i-1][j-1]dp[i-1][j]即当前的数等于其左上角的数加上右上角的数。

相关新闻