答えが500未満で最大になるように、1から連続する整数の和を、whileを使って計算するようにはどのようにすれば可能でしょうか?
試した事:コードの記述(下記)をしたのですが、これですと処理の繰り返しだけになってしまい計算ができずもろもろ試みたのですが上手くいきません。
python3
1while result < 500: 2 result +=1 3 print(result)
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
まずはあなたなりにコードを書いてみましょう。
これでは丸投げですぜ
2020/01/07 08:23
コメントありがとうございます、
質問欄を修正させていただきました。
回答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総合スコア21956
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/07 11:12
回答していただきましてありがとうございます。
上記に記述していただきましたコードについてなのですが、どのようにして答えが495や31という結果になっているのでしょうか?
また累積和について教えていただけますと助かります。
2020/01/07 11:35 編集
すいません、コードと値に間違いがありましたので修正しました。
1 + 2 + … + n < 500 である最大の n を求めたいということでよろしいでしょうか。
その場合、1 + 2 + … + 31 = 496 がその値になります。
1 + 2 + … + n の和を n までの累積和といっています。
2020/01/10 03:53
返信が遅くなってしまい申し訳ありません。
>1 + 2 + … + n < 500 である最大の n を求めたいということでよろしいでしょうか。
>>はい。
>その場合、1 + 2 + … + 31 = 496 がその値になります。
1 + 2 + … + n の和を n までの累積和といっています。
>>ありがとうございます、助かりました。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。