投稿
クロ t.n-417
0~9までの数字から重複しないでN個選んで出来る数を全て羅列する。というプログラムを作りたいのですが、Nが3ならこんなのでもいいと思いますけど、8個、9個になった時にもっと簡潔に書く方法は無いでしょうか?
2そうだね
プレイ済み
返信[1]
親投稿
まげ MAGE_LOVEMARINE
私がよく使う方法です。もっと効率的な方法もあるかもしれませんが。
0そうだね
プレイ済み
返信[2]
親投稿
てらこや actorbug
再帰呼び出しを使えば、簡潔に書くことができます。 元のプログラムを見ると、FOR文があってA$とB$を更新するという処理が入れ子になっているのが分かります。 だったらそれを1つの命令にしてしまって、入れ子のところはその命令を再利用すれば良いのです。 ただ、何らかの条件で止まるようにしておかないと、エラーになるのでご注意下さい。
0そうだね
プレイ済み
返信[3]
親投稿
クロ t.n-417
まげさん コメントありがとうございます。すみません、ランダムじゃなくて012,013,014...と網羅していくのが作りたかったんです…
0そうだね
プレイ済み
返信[4]
親投稿
クロ t.n-417
てらこやさん ありがとうございます!うまくいきました!
1そうだね
プレイ済み
返信[5]
親投稿
クロ t.n-417
とは言え、再帰についてあまりわかっていない私…
0そうだね
プレイ済み
返信[6]
親投稿
まげ MAGE_LOVEMARINE
とんでもない勘違いでした。ごめんなさい。
0そうだね
プレイ済み
返信[7]
親投稿
ASA fusuian
再帰はむずかしいですよね! プチコンになった気分で、紙に変数の値の変化を書きながら、処理の流れを追ってみるといいかな、と思います。 でもまあ、今すぐ全部わからなくても気にしないで!(^^)
0そうだね
プレイ済み
返信[8]
親投稿
クロ t.n-417
ASAさん コメントありがとうございます。今回教えていただいたプログラムは、ゆっくり順を追ってなんとか理解できましたが、自分でゼロから書くとなると、とても出来そうにないです…
0そうだね
プレイ済み