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

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

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

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

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

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

274閲覧

0 が含まれていないか判定

mingo09

総合スコア23

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

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

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2022/06/15 10:13

編集2022/06/15 10:53

実現したいこと
自分の書いたコードでどのように修正したら問題が解けるか、ご教授いただけたら嬉しいです。

【問題】長さ N の数列Aが与えられます。Aの中に 0 が含まれていない場合はYESを、 0 が含まれている場合はNOを出力してください。
入力例1(N = 4, A = 1 2 3 0)

4  1 2 3 0

出力例1

NO

入力例2(N = 3, A = 1 2 3)

3 1 2 3

出力例2

NO

【自分で書いたコード】

Ruby

1n = gets.to_i 2 3sample = [] 4 5n.times do 6 sample.push(gets.chomp.split(" ").map &:to_i) 7end 8puts sample[0].class 9puts sample[0][0].class 10 11sample.each do |i| 12 i.each do |j| 13 if j == 0 14 puts "NO" 15 else 16 puts "YES" 17 end 18 end 19end

出力結果

Array Integer YES YES YES NO

考えたこと
自分の書いたコードの問題点は下のように考えています。
①配列の中に配列が入ってしまっている
②YESもしくはNOを、入力された値をすべて評価した上で一度だけ出力できていない

この【問題】を解くのに、入力された値を順次配列に代入していくことができれば、次のような感じで解くことができると考えています。現在は配列の中に配列が入っている状況になってしまっています。

Ruby

1if [1, 2, 3, 0].any?(0) 2 puts "NO" 3else 4 puts "YES" 5end

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

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

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

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

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

sigsegv

2022/06/15 11:43

なぜsplitするのですか?
mingo09

2022/06/15 14:01

ご回答ありがとうございます。 たしかにそうですね。気づきませんでした。 ありがとうございます。
guest

回答1

0

ベストアンサー

これで、いかがでしょうか。

ruby

1n = gets.to_i 2 3sample = [] 4 5n.times do 6 sample.push(gets.chomp.to_i) 7end 8 9 10if sample.any?(1) 11 puts "NO" 12else 13 puts "YES" 14end 15 16

投稿2022/06/15 12:47

tatsu99

総合スコア5438

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

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

mingo09

2022/06/15 14:02

前回に続き、ご回答ありがとうございます。 提案していただいたご回答から、splitメソッドを使う理由がないことがわかりました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問