🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

1116閲覧

whileを使い連続する整数の和を計算したい。

GuMasi

総合スコア73

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2020/01/07 08:06

編集2020/01/07 08:23

答えが500未満で最大になるように、1から連続する整数の和を、whileを使って計算するようにはどのようにすれば可能でしょうか?

試した事:コードの記述(下記)をしたのですが、これですと処理の繰り返しだけになってしまい計算ができずもろもろ試みたのですが上手くいきません。

python3

1while result < 500: 2 result +=1 3 print(result)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2020/01/07 08:14

まずはあなたなりにコードを書いてみましょう。 これでは丸投げですぜ
GuMasi

2020/01/07 08:23

コメントありがとうございます、 質問欄を修正させていただきました。
guest

回答1

0

ベストアンサー

python

1s = 0 # 累積和 2i = 0 # 初期値 3while s + i + 1 < 500: 4 # 500 を超えない場合 5 i += 1 6 s += i 7 8print(s, i) # 496 31

1+2+…+31 = 496
1+2+…+32 = 528

なので、1~31までの数の和が500を超えない最大の数

output

11 = 1 21+2 = 3 31+2+3 = 6 41+2+3+4 = 10 51+2+3+4+5 = 15 61+2+3+4+5+6 = 21 71+2+3+4+5+6+7 = 28 81+2+3+4+5+6+7+8 = 36 91+2+3+4+5+6+7+8+9 = 45 101+2+3+4+5+6+7+8+9+10 = 55 111+2+3+4+5+6+7+8+9+10+11 = 66 121+2+3+4+5+6+7+8+9+10+11+12 = 78 131+2+3+4+5+6+7+8+9+10+11+12+13 = 91 141+2+3+4+5+6+7+8+9+10+11+12+13+14 = 105 151+2+3+4+5+6+7+8+9+10+11+12+13+14+15 = 120 161+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16 = 136 171+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17 = 153 181+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18 = 171 191+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19 = 190 201+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20 = 210 211+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20+21 = 231 221+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20+21+22 = 253 231+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20+21+22+23 = 276 241+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20+21+22+23+24 = 300 251+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20+21+22+23+24+25 = 325 261+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20+21+22+23+24+25+26 = 351 271+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20+21+22+23+24+25+26+27 = 378 281+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20+21+22+23+24+25+26+27+28 = 406 291+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20+21+22+23+24+25+26+27+28+29 = 435 301+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20+21+22+23+24+25+26+27+28+29+30 = 465 311+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20+21+22+23+24+25+26+27+28+29+30+31 = 496 321+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20+21+22+23+24+25+26+27+28+29+30+31+32 = 528

投稿2020/01/07 08:29

編集2020/01/07 11:32
tiitoi

総合スコア21956

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

GuMasi

2020/01/07 11:12

回答していただきましてありがとうございます。 上記に記述していただきましたコードについてなのですが、どのようにして答えが495や31という結果になっているのでしょうか? また累積和について教えていただけますと助かります。
tiitoi

2020/01/07 11:35 編集

すいません、コードと値に間違いがありましたので修正しました。 1 + 2 + … + n < 500 である最大の n を求めたいということでよろしいでしょうか。 その場合、1 + 2 + … + 31 = 496 がその値になります。 1 + 2 + … + n の和を n までの累積和といっています。
GuMasi

2020/01/10 03:53

返信が遅くなってしまい申し訳ありません。 >1 + 2 + … + n < 500 である最大の n を求めたいということでよろしいでしょうか。 >>はい。 >その場合、1 + 2 + … + 31 = 496 がその値になります。 1 + 2 + … + n の和を n までの累積和といっています。 >>ありがとうございます、助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問