• ベストアンサー

VBA言語プログラミング

VBA言語です。 以下に記述する問題について質問があります。 InpuuBoxで整数をMに入力してDo〜Loop文で総和Sを計算して得た結果を(M,N,S)の形で表記したいのですが、変数をLongで宣言する場合の表示を教えてほしいです。 問題 S=1+2+2^2+・・+2^Nの総和がMを超える最小のNとS よろしくお願いします(>人<;)

質問者が選んだベストアンサー

  • ベストアンサー
  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.1

こんなコードはいかがでしょうか Sub sample()  Dim m As Long  Dim i As Long  Dim s As Long    i = 0  m = InputBox("整数M入力")    Do   s = GetS(i)   If m < s Then Exit Do   i = i + 1  Loop  MsgBox _   "(" & _   Format(m, "0") & "," & _   Format(s, "0") & "," & _   Format(i, "0") & _   ")" End Sub Function GetS(Cnt As Long) As Long    Dim i As Long  Dim t As Long    t = 0  For i = 0 To Cnt   t = t + 2 ^ i  Next i    GetS = t End Function

関連するQ&A