迅雷18年筆試中的一題
阿新 • • 發佈:2018-12-12
給定整數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
輸出例子1:
4
沒在牛客網上答過題目,第一次在牛客網上答題是頭條的筆試。
很是崩潰,我他媽連輸入都不知道怎麼獲取,更何況輸出怎麼給了!!!
value = input() n, m = [int(ele) for ele in value.split(' ')] def func(n, m): nums = [[0 for _ in range(m + 1)] for _ in range(n+1)] for i in range(n+1): nums[i][0] = 1 for i in range(1, n+1): for j in range(1, m+1): if i > j : nums[i][j] = nums[i-1][j] else: nums[i][j] = nums[i-1][j] + nums[i-1][j-i] print(nums[-1][-1]) func(n, m)