※スキルチェック問題ではありません。
規約により公式の解答コードそのままはよろしくないので、
オリジナルのコードにしています。
詳しくはコチラ
なるべくわかりやすい解説を付けました。
問題1 数値を半角スペース埋めで出力 (paizaランク D 相当)
自然数 N が与えられます。N が 3 けたになるよう数値の前に半角スペースを埋めて出力してください。
- 入力される値
- 
N 入力値最終行の末尾に改行が1つ入ります。 
 文字列は標準入力から渡されます。
- 期待する出力
- 答えの数値を解答の形式に従った形で出力してください。
N 末尾に改行を入れ、余計な文字、空行を含んではいけません。 
- 条件
- すべてのテストケースにおいて、以下の条件をみたします。
* N は自然数 
 * N は 0 以上 999 以下
- 入力例1
- 
12 
- 出力例1
- 
12 
- 入力例2
- 
0 
- 出力例2
- 
0 
解答 putsを使う場合
#1行目の入力値(数値)を受け取る n = gets.to_i #半角スペースで埋めて3桁まで表示する puts("%3d".%(n))
または sprintfを使う場合
#1行目の入力値(数値)を受け取る
n = gets.to_i
#半角スペースで埋めて3桁まで表示する
puts sprintf("%3d",n)
問題2 数値をゼロ埋めで出力 (paizaランク D 相当)
自然数 N が与えられます。N が 3 けたになるよう数値の前に 0 を埋めて出力してください。
- 入力される値
- 
N 入力値最終行の末尾に改行が1つ入ります。 
 文字列は標準入力から渡されます。
- 期待する出力
- 答えの数値を出力してください。
N 末尾に改行を入れ、余計な文字、空行を含んではいけません。 
- 条件
- すべてのテストケースにおいて、以下の条件をみたします。
* N は自然数 
 * N は 0 以上 999 以下
- 入力例1
- 
12 
- 出力例1
- 
012 
- 入力例2
- 
0 
- 出力例2
- 
000 
解答 putsを使う場合 (問題1とほぼ同じ)
#1行目の入力値(数値)を受け取る n = gets.to_i #3桁まで0で埋めて表示する puts("%03d".%(n))
または sprintfを使う場合 (問題1とほぼ同じ)
#1行目の入力値(数値)を受け取る 
n = gets.to_i
#3桁まで0で埋めて表示する
puts sprintf("%03d",n)
問題3 複数の数値を半角スペース埋めで出力 (paizaランク D 相当)
自然数 N が与えられます。N 個の自然数が与えられるので、それぞれを数値 M_i について以下の処理を行ってください。
* M_i が 3 けたになるよう数値の前に半角スペースを埋めて出力してください。
- 入力される値
- 
N M_1 M_2 M_3 ... M_N 入力値最終行の末尾に改行が1つ入ります。 
 文字列は標準入力から渡されます。
- 期待する出力
- 答えの数値を解答の形式に従った形で出力してください。
M_1 M_2 M_3 ... M_N 末尾に改行を入れ、余計な文字、空行を含んではいけません。条件 
- 
すべてのテストケースにおいて、以下の条件をみたします。 * N, M_iは自然数 * N は 0 以上 9,999 以下 * M_i は 0 以上 999 以下 
- 入力例1
- 
12 0 8 81 813 0 0 0 0 0 0 0 0 
- 出力例1
- 
0 8 81 813 0 0 0 0 0 0 0 0 
解答
#1行目の入力値(数値)を受け取る
n = gets.to_i
#複数行の入力値を受け取り配列として代入していく↓
#["0", "8", "81", "813", "0", "0", "0", "0", "0", "0", "0", "0"]
numbers = readlines.map(&:chomp)
numbers.each do |i|
#半角スペースで埋めて3桁まで表示する 
  puts sprintf ("%3d".%(i))
end
または
n = gets.to_i
numbers = readlines.map(&:chomp)
#半角スペースで埋めて3桁まで表示する
numbers.each do |i|
puts ("%3d".%(i))
end
					
