猿问

javascript输入两个整数 n 和 m,在1-n之间取n个数 和等于m

输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来.

fn(5,7) =>

[1,2,4]
[2,5]
[3,4]


精慕HU
浏览 434回答 1
1回答

翻翻过去那场雪

function&nbsp;f(max,&nbsp;min,&nbsp;m,&nbsp;t,&nbsp;mid,&nbsp;result)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(t&nbsp;>&nbsp;m)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return &nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(t&nbsp;===&nbsp;m)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result.push(mid) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(let&nbsp;i&nbsp;=&nbsp;min;&nbsp;i&nbsp;<=&nbsp;max;&nbsp;i++)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f(max,&nbsp;i&nbsp;+&nbsp;1,&nbsp;m,&nbsp;t&nbsp;+&nbsp;i,&nbsp;[...mid,&nbsp;i],&nbsp;result) &nbsp;&nbsp;&nbsp;&nbsp;} }var&nbsp;result&nbsp;=&nbsp;[]var&nbsp;m&nbsp;=&nbsp;5var&nbsp;n&nbsp;=&nbsp;10f(Math.min(m,&nbsp;n),&nbsp;1,&nbsp;m,&nbsp;0,&nbsp;[],&nbsp;result) console.log(result)
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答