【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言

締め切りが明日の課題があるのですが恥ずかしいことにこの二つの課題に全く歯が立たなくて困っています。プログラミングがお得意な方、どうかお力添えをお願いします。

課題Ⅰ:①A列に、1~100までの数字を順に行の下方向に表示せよ。②さらに、B列には①のうち、3の倍数の時に数字の代わりに”fizz”と表示せよ。③さらに、c列には②のうち、5の倍数の時に数字の代わりに”buzz”、同時に3の倍数の時は”fizzbuzz”と表示せよ。

課題Ⅱ:フィボナッチ数列(第30項まで)をワークシートの行方向に順に表示せよ。また、数列の前後の項の比f(n)/f(n-1)をn=1~30について計算し、隣の列に表示せよ。その値が(1+√5)/2[=1.61803..黄金比]に近づくことを確かめよ。5の平方根はspr(5)と書く。ちなみにspr(x)はxの平方根を与える関数である。

全くのお手上げ状態です。お助けください。

A 回答 (1件)

期待した解答かは分かりませんが、ざっと書きました。


フィボナッチ数列の解は二種類ありますが、設問の様子では、非再帰的を選んでいるようです。

'//
''課題I
Sub Sample1_1()
 Dim i As Long
 For i = 1 To 100
  Cells(i, 1).Value = i
 Next i
End Sub
Sub Sample1_2()
 Dim i As Long
 For i = 1 To 100
  If i Mod 3 = 0 Then
   Cells(i, 2).Value = "fizz"
  End If
 Next i
End Sub

Sub Sample1_3()
 Dim i As Long
 For i = 1 To 100
  If i Mod 5 = 0 Then
   Cells(i, 3).Value = "buzz"
   If i Mod 3 = 0 Then
    Cells(i, 3).Value = "fizzbuzz"
   End If
  End If
 Next i
End Sub


''課題II
Sub Sample2_1()
''シートを変えてください
 Dim i As Long
 For i = 1 To 30
  Cells(i, 1).Value = fib(i)
 Next i
End Sub

Private Function fib(num As Variant)
Dim a As Long, b As Long, i As Long, t As Long
a = 1: b = 1
For i = 3 To num
t = b
b = a + b
a = t
Next i
fib = b
End Function

Sub Sample2_2()
 Dim i As Long
 For i = 1 To 30
  Cells(i, 2).Value = fib(i) / fib(i - 1)
  ''計算
  Cells(i, 3).Value = Cells(i, 2).Value - (1 + Sqr(5)) / 2
 Next i
End Sub
    • good
    • 1
この回答へのお礼

助かりました

本当にありがとうございます。藁にもすがる思いでgooに新規会員登録して質問したのでほんとうに助かりました!!!!!ありがとうございます!

お礼日時:2018/01/12 11:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!