首页 > 试题广场 >

整数求和

[编程题]整数求和
  • 热度指数:3990 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 128M,其他语言256M
  • 算法知识视频讲解
给定整数n,取若干个1到n的整数可求和等于整数m,编程求出所有组合的个数。比如当n=6,m=8时,有四种组合:[2,6], [3,5], [1,2,5], [1,3,4]。限定n和m小于120

输入描述:
整数n和m


输出描述:
求和等于m的所有组合的个数。
示例1

输入

6 8

输出

4
a = input().strip().split()
n = int(a[0])
m = int(a[1])
resArr= [0 for x in range(m+1)]
for i in range(1,n+1):
    for j in range(m,0,-1):
        if i < j:
            resArr[j] = resArr[j]+resArr[j-i]
        elif i > j:
            resArr[j] = resArr[j]
        elif i == j:
            resArr[j] = resArr[j]+1
print(resArr[m])
发表于 2018-09-21 11:50:00 回复(0)