dポイントプレゼントキャンペーン実施中!

表すにはどうしたらいいでしょうか。
もう3時間くらい格闘しているのですが、
答えを出せません。

Dim S AS LONG
DIm N As Integer

Dim i As Integer
N = Val(TextBox1.Text)

S = 0
i = 1

For i = 1 To N Step 1
S = S + i

Next

Label4.Text = Format(S, "#,##0")

で、1+2+3+...+Nはいけるのですが、
上記の式は、Nが1づつ増えていくにしたがって、
Sの値が1 4 10 20 ...となっていくために、…。

どなたか、回答していただける方がおりましたら、
非常に助かります。
よろしくお願いいたします。。

A 回答 (4件)

  Dim total    As Long


  Dim index    As Integer
  Dim index2   As Integer
  Const MAX_VALUE As Integer = 3
  '
  total = 0
  For index = 1 To MAX_VALUE
    For index2 = 1 To index
      total = total + index2
    Next index2
  Next index
  '
  MsgBox (total)
------------------------
こんなカンジでしょうか。
    • good
    • 0
この回答へのお礼

回答してくださってありがとうございます!早速やってみます!!

お礼日時:2005/12/26 09:27

こういう場合には、


(1+2+...+N)の部分をfunction の呼出にすると
一段考えなくていいので問題が簡単になります。
ただ、#3でも言われているように、公式として
(1+2+...+N)=N(N+1)/2
ですから
S=S+i*(i+1)/2
でいいと思います。
    • good
    • 0
この回答へのお礼

質問に回答してくださってありがとうございます!早速やってみます!!!

お礼日時:2005/12/26 09:30

エクセルVBAを使いましたが、


Sub test03()
Dim S As Long
Dim N As Integer

Dim i As Integer
N = InputBox("Nまで") 'Val(TextBox1.Text)
st = 0
S = 0
i = 1

For i = 1 To N 'Step 1
S = i * (i + 1) / 2
Cells(i, "A") = S
st = st + S
Cells(i, "B") = st
Next
MsgBox st
' Label4.Text = Format(S, "#,##0")

End Sub
S = i * (i + 1) / 2
のところでガウス少年が思いついたといわれる
1+2+・・・+n
n+n-1+・・・・+1
--------------------
n+1 n+1 ・・・・n+1=n*(n-1)
の半分を使ってます。
これはプログラムの問題というより、公式の問題ですね。
    • good
    • 0
この回答へのお礼

質問に回答してくださってありがとうございます!そうなんです。階差数列・・というやつですよね?数学がめっぽう苦手なので勉強になります。ありがとうございました!

お礼日時:2005/12/26 09:29

Dim kei As Int16


Dim i As Int16
Dim maxsuu As Int16

kei = 0
maxsuu = TextBox1.Text
For i = 1 To maxsuu
kei = kei + ((maxsuu + 1) - i) * i
Next

TextBox2.Text = kei

はどうですか?
ただ .NETで作ったので・・・。
    • good
    • 0
この回答へのお礼

回答してくださってありがとうございます!!早速やってみます!!自分もNETです!

お礼日時:2005/12/26 09:28

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