• ベストアンサー

VB A言語

VBA言語です。 以下に記述する問題について質問があります。 InpuuBoxで整数をMに入力してDo〜Loop文で総和Sを計算して得た結果を(M,N,S)の形で表記したいのですが、変数をLongで宣言する場合の表示を教えてほしいです。 問題 S=2^1+2^3+2^5・・・+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   i = i + 1   s = GetS(i)   If m < s Then Exit Do  Loop  MsgBox _   "(" & _   Format(m, "0") & "," & _   Format(s, "0") & "," & _   Format((i - 1) * 2 + 1, "0") & _   ")" End Sub Function GetS(Cnt As Long) As Long    Dim i As Long  Dim t As Long    t = 0  For i = 1 To Cnt   t = t + 2 ^ ((i - 1) * 2 + 1)  Next i    GetS = t End Function

関連するQ&A