• ベストアンサー

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% (454/691)
回答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

  • VBA言語プログラミング

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

  • Do Loop 構文で

    エクセルVBAのDo Loop 構文で以下のような場合はどのように表記すればいいでしょうか? 変数 N は1から始まり15回処理を行うと16に変わり、また15回処理を行う。その繰り返しで31、46、61・・・と増加していきます。 N の変化の表記だけ分かればいいです。 お願いします。

  • c言語のプログラムです

    2つの生の整数の割り算a÷bはaからbを繰り返し引いていき、引くことが出来なくなるまでの回数を商、その時の残りを剰余をすることで、引き算だけを用いて実現することができる。このことを考慮して、while文と引き算だけを用いて割り算を実現しなさい。という問題なんですけどどのようにプログラムを作っていいやらわかりません 一様ヒントはあります ・変数としては、入力する二つの整数に対応する変数m,n、商に対応する変数q、剰余に対応する変数rを使うとよいでしょう。すべて整数ですのでintで宣言する。 皆さんのご協力お願いします

  • c言語プログラム

    加減乗除および剰余の演算記号(+-* / %)と2つの整数を入力し、入力した2つの整数に対して入力した演算を施して表示するプログラムをif文ではなくswitch文を用いて作成しなさいなお、演算記号入力の際に間違った記号(+ - * / % 以外)を入力した場合は+を入力したものとして計算するものとしなさい。 ヒントで 変数としては入力演算記号に対応する変数op、入力する2つの整数に対応する変数m,n、答えに対応する変数ansを使うとよいでしょう宣言についてはopは記号なのでcharで宣言しますが、あとはすべて整数ですのでintで宣言 まずやることは演算記号以外の場合に+であることを表示するプログラムを組むと思うんですけど どうしたらいいのかわかりません力を御貸しください

  • C言語の変数の型がわかりません

    C言語の変数の型がわかりません [int]は4バイトを使って整数(-2147483648~2147483648)を格納できる. [long int]は4バイトを使って整数(-2147483648~2147483648)を格納できる. のようなことが書いてあります. [int]と[long int]の違いは何ですか?

  • C言語での変数の書式設定

    こんばんは。 このたびC言語を学びはじめたのですが、変数の書式設定の部分で分からない部分があったので、質問させていただきました。 分からない部分というのは%ld,%hd,(%lf)(%hf)です。(()内に書いたのは存在するか分かりませんが・・・。) これらはshortやlongで整数(実数)を表現する書式だと書いてあったのですが、具体的に何がどう違うのかがよくわかりません。 ためしにlong型で宣言した変数を%hdで表示してみたらshort型で表現できる数のみしか正常に表示されませんでした。しかし、short型で宣言した変数を%ldで表示してみても何も変化が見られません。また、実数に関してはよくわからない値が返ってきてしまいました。 変数で宣言した型と実際に使う書式が合致するか否かでは一体何がどう変化するのでしょうか? 初歩的なことかもしれませんが、以上の疑問の答えを知っていらっしゃる方がいましたら、どうかご教授ください。お願いいたします。

  • C言語 プログラミングの問題 エラーの理由

    C言語のプログラミングの問題です。 以下の文を実行したところ、「segmentation fault」というエラーが表示された。 想定される原因を答えなさい。 ただし書式に対応する、integer_dat(非ポインタ整数変数)と、string_dat(文字列配列変数)の宣言は正しいものとする。 scanf("%d%s", integer_dat, string_dat); 答えとして、 「integer_datに&がついていないのでアドレスで渡せないため。」 と書いてありました。 しかし採点は△でした。 正直非ポインタ整数変数という言葉がわかりません。 他にどのような答えがあるのでしょうか?

  • VBA言語プログラミング

    添付画像の問題での質問です。ong型の変数Nを宣言し、Nの値をinputbox関数で入力すると、(N,sum())および(N,sum2())を表示するSubプロシージャのプログラムが分かりません。 言語はエクセルのビジュアルベーシックです。

  • 非負整数nを読み込んで、1+2+・・・+m>nとなる最小の整数mを表示

    非負整数nを読み込んで、1+2+・・・+m>nとなる最小の整数mを表示するというプログラミングなのですが・・・ #include <stdio.h> int main(void) { int n,m=■ , sum=0; do { printf("非負整数: "); scanf("%d", &n); } while (n■0); while (sum■n) { ■ ; sum +=■; } printf("1+2+・・・+m> %dとなる最小の整数mは%dである。\n", n, m); return (0); } ■のところがわかる方どうにかお願いします!!

  • VBAの変数の宣言で数字はすべてDoubleにする

    ご意見教えてください。 VBAの変数の宣言で、数字はすべて、整数も含めてDoubleとして宣言した場合、どんな問題が考えられるでしょうか? また、実行速度が落ちるかも?しれませんが、気になるほど落ちるでしょうか

専門家に質問してみよう