今回はpaiza 標準入力メニューセクション4【n 行の出力】を解説します。
セクション4は、1から入力された整数n までを改行区切りで出力する問題です。
本記事で使用しているメソッドについて
解答例で使っているメソッドについて、下記の記事で詳しく解説していますので参考にしてみて下さい。
- [Ruby] 標準入力によるデータ取得1
- [Ruby] 標準入力によるデータ取得2
- [Ruby] 標準入力によるデータ取得3
- [Ruby] 標準出力(データを任意に整形して出力する)
- [Ruby]配列の基本操作1
- [Ruby]繰り返し処理
セクション4:【n 行の出力】
4-STEP1: 1 行または 2 行の出力 (paizaランク D 相当)
1から入力された整数n (1 ≦ n ≦ 2) までを改行区切りで出力する問題です。
入出力例
# 入出力例 INPUT1 = <<~"EOS" 1 EOS OUTPUT1 = <<~"EOS" 1 EOS INPUT2 = <<~"EOS" 2 EOS OUTPUT2 = <<~"EOS" 1 2 EOS
Ruby解答例1
gets.to_i
で整数nを受け取り、(1..n).to_a
で1からnまでの整数の配列aryを生成し、putsメソッドで出力しています。
※ このコードでセクション4全ての問題に正解することが出来ます。
# 解答例1 # 入力 n = gets.to_i # 1 から n までの配列 ary を生成 ary = (1..n).to_a # 出力 puts(ary)
Ruby解答例2
gets.to_i
で整数nを受け取り、1.upto(n) do |num| ~ end
で、整数numを1からnまでカウントアップし、putsメソッドで出力しています。
※ このコードでセクション4全ての問題に正解することが出来ます。
# 解答例2 # 入力 n = gets.to_i # num を 1 から n まで 1 ずつ増やしながら繰り返す 1.upto(n) do |num| # 出力 puts(num) end
Ruby解答例3
gets.to_i
で整数nを受け取り、入力される整数の種類分の条件分岐を設定して出力しています。
※ この問題に対してはこういう書き方も出来ますっていう例です。
- 整数n が 1 以上なら 1 を出力
- 整数n が 2 なら 2 を出力
# 解答例3 # 入力 (1 ≦ n ≦ 2) n = gets.to_i # 出力 puts(1) if n >= 1 puts(2) if n == 2
Python解答例1
int(input())
で整数nを受け取り、list(range(1, n + 1))
で1からnまでの整数の配列aryを生成し、リスト内包表記のprintメソッドで出力しています。
※ このコードでセクション4全ての問題に正解することが出来ます。
# 解答例1 # 入力 n = int(input()) # 1 から n までの配列 ary を生成 ary = list(range(1, n + 1)) # 出力 [print(n) for n in ary]
Python解答例2
int(input())
で整数nを受け取り、for num in range(a, n + 1)
で、整数numを1からnまでカウントアップし、printメソッドで出力しています。
※ このコードでセクション4全ての問題に正解することが出来ます。
# 解答例2 # 入力 n = int(input()) # num を 1 から n まで 1 ずつ増やしながら繰り返す for num in range(1, n + 1): print(num)
Python解答例3
int(input())
で整数nを受け取り、入力される整数の種類分の条件分岐を設定して出力しています。
※ この問題に対してはこういう書き方も出来ますっていう例です。
- 整数n が 1 以上なら 1 を出力
- 整数n が 2 なら 2 を出力
# 解答例3 # 入力 (1 ≦ n ≦ 2) n = int(input()) # 出力 if n >= 1: print(1) if n == 2: print(2)
4-STEP2: 数行の出力 (paizaランク D 相当)
1から入力された整数n (1 ≦ n ≦ 5) までを改行区切りで出力する問題です。
入出力例
# 入出力例 INPUT1 = <<~"EOS" 1 EOS OUTPUT1 = <<~"EOS" 1 EOS INPUT2 = <<~"EOS" 2 EOS OUTPUT2 = <<~"EOS" 1 2 EOS
Ruby解答例1
4-STEP1 解答例1 と同じコードです。
# 解答例1 # 入力 n = gets.to_i # 1 から n までの配列 ary を生成 ary = (1..n).to_a # 出力 puts(ary)
Ruby解答例2
4-STEP1 解答例2 と同じコードです。
# 解答例2 # 入力 n = gets.to_i # num を 1 から n まで 1 増やしながら繰り返す 1.upto(n) do |num| puts(num) end
Ruby解答例3
gets.to_i
で整数nを受け取り、入力される整数の種類分の条件分岐を設定して出力しています。
- 整数n が 1 以上なら 1 を出力
- 整数n が 2 以上なら 2 を出力
- 整数n が 3 以上なら 3 を出力
- 整数n が 4 以上なら 4 を出力
- 整数n が 5 なら 5 を出力
# 解答例3 # 入力 (1 ≦ n ≦ 5) n = gets.to_i # 出力 puts(1) if n >= 1 puts(2) if n >= 2 puts(3) if n >= 3 puts(4) if n >= 4 puts(5) if n == 5
Python解答例1
4-STEP1 解答例1 と同じコードです。
# 解答例1 # 入力 n = int(input()) # 1 から n までの配列 ary を生成 ary = list(range(1, n + 1)) # 出力 [print(n) for n in ary]
Python解答例2
4-STEP1 解答例2 と同じコードです。
# 解答例2 # 入力 n = int(input()) # num を 1 から n まで 1 ずつ増やしながら繰り返す for num in range(1, n + 1): print(num)
Python解答例3
int(input())
で整数nを受け取り、入力される整数の種類分の条件分岐を設定して出力しています。
- 整数n が 1 以上なら 1 を出力
- 整数n が 2 以上なら 2 を出力
- 整数n が 3 以上なら 3 を出力
- 整数n が 4 以上なら 4 を出力
- 整数n が 5 なら 5 を出力
# 解答例3 # 入力 (1 ≦ n ≦ 5) n = int(input()) # 出力 if n >= 1: print(1) if n >= 2: print(2) if n >= 3: print(3) if n >= 4: print(4) if n == 5: print(5)
4-STEP3: 10 行以内の出力 (paizaランク D 相当)
1から入力された整数n (1 ≦ n ≦ 10) までを改行区切りで出力する問題です。
入出力例
# 入出力例 INPUT1 = <<~"EOS" 1 EOS OUTPUT1 = <<~"EOS" 1 EOS INPUT2 = <<~"EOS" 2 EOS OUTPUT2 = <<~"EOS" 1 2 EOS
Ruby解答例1
4-STEP1 解答例1 と同じコードです。
# 解答例1 # 入力 n = gets.to_i # 1 から n までの配列 ary を生成 ary = (1..n).to_a # 出力 puts(ary)
Ruby解答例2
4-STEP1 解答例2 と同じコードです。
# 解答例2 # 入力 n = gets.to_i # num を 1 から n まで 1 増やしながら繰り返す 1.upto(n) do |num| puts(num) end
Python解答例1
4-STEP1 解答例1 と同じコードです。
# 解答例1 # 入力 n = int(input()) # 1 から n までの配列 ary を生成 ary = list(range(1, n + 1)) # 出力 [print(n) for n in ary]
Python解答例2
4-STEP1 解答例2 と同じコードです。
# 解答例2 # 入力 n = int(input()) # num を 1 から n まで 1 ずつ増やしながら繰り返す for num in range(1, n + 1): print(num)
4-FINAL: 【n 行の出力】1,000 行以内の出力 (paizaランク D 相当)
1から入力された整数n (1 ≦ n ≦ 1000) までを改行区切りで出力する問題です。
入出力例
# 入出力例 INPUT1 = <<~"EOS" 1 EOS OUTPUT1 = <<~"EOS" 1 EOS INPUT2 = <<~"EOS" 2 EOS OUTPUT2 = <<~"EOS" 1 2 EOS
Ruby解答例1
4-STEP1 解答例1 と同じコードです。
# 解答例1 # 入力 n = gets.to_i # 1 から n までの配列 ary を生成 ary = (1..n).to_a # 出力 puts(ary)
Ruby解答例2
4-STEP1 解答例2 と同じコードです。
# 解答例2 # 入力 n = gets.to_i # num を 1 から n まで 1 増やしながら繰り返す 1.upto(n) do |num| puts(num) end
Python解答例1
4-STEP1 解答例1 と同じコードです。
# 解答例1 # 入力 n = int(input()) # 1 から n までの配列 ary を生成 ary = list(range(1, n + 1)) # 出力 [print(n) for n in ary]
Python解答例2
4-STEP1 解答例2 と同じコードです。
# 解答例2 # 入力 n = int(input()) # num を 1 から n まで 1 ずつ増やしながら繰り返す for num in range(1, n + 1): print(num)
今回のまとめ
配列の要素を改行区切りで出力するには、配列に対して一括処理する方法と、配列のそれぞれの要素に対して処理する方法があります。
また、入力値が変わっても対応できるようにコードを書くと、入力条件が変わった時も修正が少ない、または修正不要で対応することが出来ます。
セクション4では可変の要素数に対する出力を扱いました。割とアッサリした問題でしたね。
次は、特定の区切り文字での出力です!