前提・実現したいこと
Javascriptで,1からnまでの整数を高々1回ずつ用いて作られるm個の数の組のうち,和がちょうどkになるような組のリストによって構成されたリストを返す関数 kadai1(n, m, k)を作りたいです.
これらの組のうち,順番を入れ替えたとき同じになる組は同じものとして,辞書順で一番若いもの,すなわち小さい数から順に大きくなるように並べたものを用いること.さらに 組は辞書順で若いほうから順に並べること.
該当のソースコード
Javascript
1function kadai1(n,m,k){ 2 var ans = [] 3 function kadai11(nn,mm,kk){ 4 if(mm===0&&kk===0)ans=nn 5 puts(nn +" "+ mm + " " + kk) 6 if(nn==n)return ans 7 for(var i=1;i<n+1;i++){ 8 kadai11(nn+i,mm-1,kk-i) 9 } 10 11 } 12 //kadai11(1,m,k) 13 kadai11(1,3,10) 14} 15kadai1(5,3,10)
試したこと
kadai11(nn, mm, kk)を「nn以上のmm個の数を用いてちょうど和kkを作る」 と定義して,kadai11(*,0,0)となったときにansに1つの解として代入していくように目指しました.
回答3件
あなたの回答
tips
プレビュー