※スキルチェック問題ではありません。
規約により公式の解答コードそのままはよろしくないので、
オリジナルのコードにしています。
詳しくはコチラ
なるべくわかりやすい解説を付けました。
問題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