掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
2問教えてくださし (ID:143505)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
回答期限も過ぎたようなので、あえて別案で回答してみます。 > 1+2+3+・・・・+nの合計が1000を超えた時のnの値に、合計値を求めます。 n = 45 の時に合計値が 1035 になる、というのが答えです。 n = 44 の時の合計値は 990 ですので、これだと 1000 以下ですね。 1+2+3+…+n の合計値は、 total = (n + 1) * (n / 2) という数式で簡単に求まります。 n = 4 なら total = 10 ですし、 n = 5 なら total = 15 です。 そして上記を二次方程式として解くと、total = 1000 のときには n = 45.22415454762672201809533760790349622123129373125127… となります。なので、n = 45 の時点で 1000 以上になることが分かります。 これを VB で処理すると、下記のように書けます。 ループ処理は一切不要なので、While はあえて使っていません。 Dim limit As Integer Dim n1 As Double, n2 As Double Dim total As Integer, n As Integer limit = 1000 'VB6 n1 = Sqr(8 * limit + 1) / 2 + 0.5 n2 = Fix(n2) n = IIf(n1 > n2, n2, n2 + 1) total = (n + 1) * (n / 2) 'VB.NET n1 = Math.Sqrt(8 * limit + 1) / 2 + 0.5 n2 = Math.Truncate(n2) n = If(n1 > n2, n2, n2 + 1) total = (n + 1) * (n / 2) > 元利合計額を一覧表にして表示しなさい。 一覧表は「印刷」ではなく、「表示」で良い、と。 VB6 なら MSHFlexGrid VB.NET なら DataGridView に表示するのが良さそうですね。 あるいは ListView も使えそう。 Web アプリとかコンソールアプリとか WPF などという 可能性もありますが、元質問者の環境は不明なので。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.