日別アーカイブ: 2022年9月28日

paizaLvアップ問題と解答(標準入力16)Ruby

※スキルチェック問題ではありません。
規約により公式の解答コードそのままはよろしくないので、
オリジナルのコードにしています。

詳しくはコチラ

なるべくわかりやすい解説を付けました。

問題3 1 行目で与えられる N 個の実数の入力 (paizaランク D 相当)

1 行目で、整数 N と、続けて N 個の実数 a_1, … , a_N が半角スペース区切りで与えられます。
a_1, … , a_N を改行区切りでそのまま出力してください。

入力される値
以下の形式で標準入力によって与えられます。
1 行目に整数 N と N 個の実数 a_1, … , a_N が半角スペース区切りで与えられます。

N a_1 ... a_N

入力値最終行の末尾に改行が1つ入ります。
文字列は標準入力から渡されます。

期待する出力
a_1, … , a_N を改行区切りで出力してください。
また、末尾に改行を入れ、余計な文字、空行を含んではいけません。

a_1
...
a_N
条件
すべてのテストケースにおいて、以下の条件をみたします。

・1 ≦ N ≦ 100
・a_i (1 ≦ i ≦ N) は 1 以上 1,000 以下の実数
・また a_i は小数点以下 3 桁までの実数
入力例1
5 8.13 81.3 813 0.813 1.381
出力例1
8.13
81.3
813
0.813
1.381

解答

# 1行目の入力値(数値)を変数に代入する 
numbers = gets.split
# 配列の最初を取り出す
numbers.shift
 # 入力を1行ずつ受け取り出力を5回繰り返す 
puts numbers

問題4 2 行目で与えられる N 個の実数の入力 (large) (paizaランク D 相当)

1 行目に整数 N が与えられます。
2 行目に、N 個の実数 a_1, … , a_N が半角スペース区切りで与えられます。
a_1, … , a_N を改行区切りでそのまま出力してください。

入力される値
以下の形式で標準入力によって与えられます。
1 行目に整数 N が、 2 行目に実数 a_1, … , a_N が半角スペース区切りで与えられます。

N
a_1, ... , a_N

入力値最終行の末尾に改行が1つ入ります。
文字列は標準入力から渡されます。

期待する出力
a_1, … , a_N を改行区切りで出力してください。
また、末尾に改行を入れ、余計な文字、空行を含んではいけません。

a_1
...
a_N
条件
すべてのテストケースにおいて、以下の条件をみたします。

・1 ≦ N ≦ 10,000
・a_i (1 ≦ i ≦ N) は 1 以上 1,000 以下の実数
・また a_i は小数点以下 3 桁までの実数
入力例1
5
0.813 8.13 8 1.83 3.81
出力例1
0.813
8.13
8
1.83
3.81

解答

# 1行目の入力値(数値)を変数に代入する 
n = gets.to_i 
# 半角スペースで刻みの入力を受け取り出力する 
puts gets.split

FINAL問題 1 行目で与えられる N 個の実数の入力 (large) (paizaランク D 相当)

1 行目で、整数 N と、続けて N 個の実数 a_1, … , a_N が半角スペース区切りで与えられます。
a_1, … , a_N を改行区切りでそのまま出力してください。

入力される値

以下の形式で標準入力によって与えられます。
1 行目に整数 N と N 個の実数 a_1, … , a_N が半角スペース区切りで与えられます。

N a_1 ... a_N

入力値最終行の末尾に改行が1つ入ります。
文字列は標準入力から渡されます。

期待する出力
a_1, … , a_N を改行区切りで出力してください。
また、末尾に改行を入れ、余計な文字、空行を含んではいけません。

a_1
...
a_N
条件
すべてのテストケースにおいて、以下の条件をみたします。

・1 ≦ N ≦ 10,000
・a_i (1 ≦ i ≦ N) は 1 以上 1,000 以下の実数
・また a_i は小数点以下 3 桁までの実数
入力例1
5 8.13 81.3 813 0.813 1.381
出力例1
8.13
81.3
813
0.813
1.381

解答

# 1行目の入力値(数値)を変数に代入する 
numbers = gets.split
# 配列の最初を取り出す
numbers.shift
# 入力を1行ずつ受け取り出力を5回繰り返す 
puts numbers