|
初めまして、cosukeと申します。
この度、VBAで高校時代解けなかった過去問をVBAで答を導き出そうと頑張ってみたのですが、どうも反応しません^^;問題は以下のとおりです。
P氏はN頭のラクダを3人の息子で分けるように遺言して亡くなりました。
その遺言によればNのa分の1、b分の1、c分の1(a,b,cは自然数でa>b>cとする)が息子達の相続するラクダの数である。ただし、Nはa,b,cのいずれの倍数でもない。1/a+1/b+1/c=1でないので3人が悩んでいると、通りがかりの旅人がよい工夫を思いついた。旅人のラクダを1頭加え、N+1を遺言の率に従って分割すれば、うまく分割でき、1頭余る。例えば、N=11(a,b,c)=(6,4,2)がその例である。
とりあえず、条件を満たす(a>b>c除く)N,a,b,cの値の組み合わせを1<a,b,c<10の範囲でとりあえず全て出してから題意にそうように少しずつ変更していこうかと思い、下記のプログラムを作ってみたのですが、どうも反応しません(汗
自分では何がおかしいのかわからず困っています。
アドバイス宜しくお願いします。
Sub abc()
'宣言
Dim a, b, c, N, i As Integer
'式
Cells(1, 1) = "N/ (1 + N)"
Cells(2, 1) = "1 / a + 1 / b + 1 / c"
'値
Cells(5, 1) = "a"
Cells(6, 1) = "b"
Cells(7, 1) = "c"
Cells(8, 1) = "N"
'総当り
For a = 1 To 10
For b = 1 To 10
For c = 1 To 10
x = 1 / a: y = 1 / b: z = 1 / c: N = a + b + c
i = i + 1
If x + y + z = N / (1 + N) Then
Cells(5, 2 + i) = a
Cells(6, 2 + i) = b
Cells(7, 2 + i) = c
Cells(8, 2 + i) = a + b + c
Cells(4, 2 + i) = i & "組目"
End If
Next c
Next b
Next a
End Sub
|
|