• 締切済み

VB.NET プログラミングの基礎で分らないところを教えてください。

2つの整数n,m (n>m) を入力し、組み合わせ nCm を表示させるプログラムです。 Private Sub Button1_Click(Byval sender As System.Object,ByVal e As System.EventArgs) Handles Button1.Clieck Dim intN intM, intl As linteger Dim dblComb As Double intN = Textbox1.Text intM = Textbox2.Text dblComb = 1.0 For intl = 1 To intM Next Textbox3.Text = intM End Sub End Class ここまで出来ているんですが、For intl = 1 To intM 以下のプログラムが分りません。どなたか教えてください。。

みんなの回答

  • test_
  • ベストアンサー率28% (15/52)
回答No.2

こんなのでどうかなぁ。。 答えの確認はしてませんので・・・。 ご自由にお使いください。CでもPHPでも 探せばネットにたくさんありますよ。 intM=Combination(intN,intM) Function Combination(ByVal n As Integer, ByVal r As Integer) As Double ' If n < 1 Or r < 1 Then Combination = 0 Else If r > n Then Combination = 0 Else If r = n Then Combination = 1 Else On Error GoTo Exceptrtn u = 1 For t = (n - r) + 1 To n u = u * t Next t v = 1 For t = 1 To r v = v * t Next t Combination = (u / v) End If End If End If ExitCF: Exit Function Exceptrtn: Combination = -1 Resume ExitCF End Function

xsw34i
質問者

お礼

なるほど、こういうやり方もあるんですね~(感) ありがとうございます^^ 試してみますm(_"_)m

  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.1

組み合わせの意味が分からないです。 仮にn=5、m=4だったらnCm=54になるということですかね?? ループさせてるので、多分11,12,13,14,21,22,23,24...という形にしたいということになるのでしょうか。 また表示させるとは何をどこに表示させるのでしょうか。組み合わせの個数なのか、全ての組み合わせなのか、最後なのか。 あと最後の↓には何の意味があるのでしょうか。ループが中断するのでしょうか。 Textbox3.Text = intM 結果的に↓と同じことにならないことがあるのですか? Textbox3.Text=Textbox2.Text

xsw34i
質問者

補足

整数n   [ Textbox1 ] 【Button】 整数m(<n) [ Textbox2 ] nCm [Textbox3] 配置はこのような感じです。 例えば 整数n=5 ,整数m(<n)=2 でしたら nCm=10 になるようなプログラムを作りたいのです。

関連するQ&A