質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.46%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

2回答

1307閲覧

Rubyでwhile文を使って1 + 2 + 3 + …と足される数を1つずつ増やしていくプログラムを作成していますがうまくいきません。

mike0886

総合スコア2

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

1クリップ

投稿2020/06/07 10:47

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
Ruby初心者です。while文を使って1 + 2 + 3 + …と足される数を1つずつ増やしていくプログラムを作成して
実行後、和が100を超えるときの足されるまでの数値と、合計値を表示するようにしてください。
というのを作っていますがうまくいきません。
よろしくお願いします。

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

i = 1
s = 0

while s<=100

i+=1 s+=i

  puts(s)
puts(i-1)
end

ソースコード

試したこと

ここに問題に対して試したことを記載してください。
2
1
5
2
9
3
14
4
20
5
27
6
35
7
44
8
54
9
65
10
77
11
90
12
104
13
という数値がででますが、どこをどうしたら良いかわかりません。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答2

0

r.rb

ruby

1# frozen_string_literal: true 2 3SUM_MAX = 10 4 5i = 1 6sum = 0 7while sum <= SUM_MAX 8 print(' + ') if i != 1 9 print(i) 10 sum += i 11 i += 1 12end 13puts(" = #{sum}") 14print 15 16i = 1 17sum = 0 18while sum <= SUM_MAX 19 sum += i 20 i += 1 21end 22 23print(1) 24k = 2 25while k < i 26 print(" + #{k}") 27 k += 1 28end 29puts(" = #{sum}") 30 31vals = [1] 32i = 2 33while vals.sum <= SUM_MAX 34 vals << i 35 i += 1 36end 37puts("#{vals.join(' + ')} = #{vals.sum}") 38

実行例
イメージ説明

3つの方法をかいてみました。
それぞれ、比較してみてください、
もっと別の書き方も研究してみてください。

投稿2020/06/07 21:20

katoy

総合スコア22324

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

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

winterboum

2020/06/07 22:39

while sum < SUM_MAX  では?
mike0886

2020/06/07 23:15

多くの回答ありがとうございます!自分では一つの答えもやっとだったので 考え方が広がりました!色々試して見ます
guest

0

ベストアンサー

while loopの中でputsはdebugとしては意味ありますが、問に対しては余分です。loopが終わってから iとsをputsしましょう。

なお、

i = 1 s = 0 while s<=100 i+=1 s+=i

ですと、「1から足す」べき所「2からたす」ことになってます。
そこも要修正

投稿2020/06/07 10:59

編集2020/06/07 10:59
winterboum

総合スコア23401

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

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

mike0886

2020/06/07 23:16

指摘していただいた通りにしましたら、正しい数値になりました!ありがとうございます !
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問