8
0

標準出力メニュー

STEP: 1 1 行の出力

puts 813

STEP: 2 2 行の出力

puts 8
puts 13

STEP: 3 3 行の出力

puts 8
puts 1
puts 3

STEP: 4 10 行の出力

puts %w[813 1 2 923874 23648 782356 3256 2342 24324 112]

%w記法を使うことで配列にできます。

FINAL問題 【改行あり出力】1,000 行の出力

(1..1000).each do |i|
    puts i
end

STEP: 1 2 つの数値を出力

puts "1 1"

STEP: 2 3 つの数値を出力

puts "8 1 3"

STEP: 3 10 個の数値を出力 (末尾に半角スペース有)

(1..10).each do |i|
    print i
    print " "
end

printメソッドは改行しないため、繰り返し処理後に数字を一行で出力できます。

STEP: 4 10 個の数値を出力

puts (1..10).to_a.join(' ')

to_aメソッドで配列にして、joinメソッドの引数に半角スペースを入れることによって、数字を半角スペースで区切って出力できます。

FINAL問題 【半角スペース区切りの出力】1,000 個の数値を出力

puts (1..1000).to_a.join(' ')

STEP: 1 1 つの文字列を出力

puts "paiza"

STEP: 2 2 つの文字列を出力

puts "paiza learning"

STEP: 3 入力された 2 つの文字列を出力

s = gets.chomp
t = gets.chomp
puts s
puts t

STEP: 4 入力された 10 個の文字列を出力

a = []
10.times { a << gets.chomp }
puts a.join(' ')

FINAL問題 【文字列の出力】入力された 10 個の文字列を出力

a = gets.chomp.split
puts a

STEP: 1 1 行または 2 行の出力

n = gets.to_i
if n == 1
    puts 1
else
    puts 1
    puts 2
end

STEP: 2 数行の出力

n = gets.to_i
(1..n).each { |i| puts i }

STEP: 3 10 行以内の出力

n = gets.to_i
(1..n).each { |i| puts i }

FINAL問題 【n 行の出力】1,000 行以内の出力

n = gets.to_i
(1..n).each { |i| puts i }

STEP: 1 カンマ区切りで 2 つ出力

a = gets.split.map(&:to_i)
puts a.join(',')

STEP: 2 バーティカルライン区切りで 3 つの文字列を出力

s = []
3.times { s << gets.chomp }
puts s.join('|')

STEP: 3 カンマ区切りで 10 個出力 1

n = gets.split.map(&:to_i)
n.each do |i|
    print "#{i},"
end

STEP: 4 カンマ区切りで 10 個出力 2

n = gets.split.map(&:to_i)
puts n.join(',')

STEP: 5 半角スペースとバーティカルライン区切りで 10 個出力

n = []
10.times { n << gets.to_i }
puts n.join(' | ')

STEP: 6 大きな数値を 3 けたごとにカンマ区切りで出力

n = gets.chomp
(0...n.length).each do |i|
    if i % 3 == 0 && i != 0
        print ","
    end
    print n[i]
end

nは文字列として扱い、3桁毎に,を出力します。

FINAL問題 【特定の文字で区切り 1 行で出力】大きな数値を 3 けたごとにカンマ区切りで出力 2

n = gets.chomp
n.reverse!
m = ""
(0...n.length).each do |i|
    if i % 3 == 0 && i != 0
        m += ","
    end
    m += n[i]
end
puts m.reverse

reverse!メソッドで反転することで低い桁から3桁毎に,を追加。新しい文字列mに追加していく。
最後に再度反転して出力。

STEP: 1 2 * 2 の出力

puts "0 8"
puts "1 3"

STEP: 2 3 * 3 の出力

n = gets.split.map(&:to_i)
(0..8).each do |i|
    if i % 3 == 2
        puts n[i]
    else
        print "#{n[i]} "
    end
end

STEP: 3 九九表の出力

(1..9).each do |i|
    (1..9).each do |j|
        if j == 9
            puts i * j
        else
            print "#{i * j} "
        end
    end
end

FINAL問題 【n * n の 2 次元配列の表示】N * N の九九表の出力

n = gets.to_i
(1..n).each do |i|
    (1..n).each do |j|
        if j == n
            puts i * j
        else
            print "#{i * j} "
        end
    end
end

STEP: 1 N 個の文字を半分ずつ出力

n = gets.to_i
(1..n).each do |i|
    if i == n / 2 || i == n
        puts i
    else
        print "#{i} "
    end
end

STEP: 2 数値を異なる長さで 2 行出力

n, m = gets.split.map(&:to_i)
a = []
b = []
(1..n).each {|i| a << i }
(1..m).each {|i| b << i }
puts a.join(' ')
puts b.join(' ')

STEP: 3 直角三角形の出力

n = gets.to_i
(1..n).each do |i|
    a = []
    (1..i).each do |j|
        a << j
    end
    puts a.join(' ')
end

STEP: 4 すべての行の長さが不定な 2 次元配列の出力

n = gets.to_i
m = gets.split.map(&:to_i)
(0...n).each do |i|
    a = []
    (1..m[i]).each do |j|
        a << j
    end
    puts a.join(' ')
end

FINAL問題 【行によって長さが違う二次元配列の表示】すべての行の長さと値が不定な 2 次元配列の出力

n, m = gets.split.map(&:to_i)
a = gets.split.map(&:to_i)
b = gets.split.map(&:to_i)
(0...m).each do |i|
    puts a.slice!(0..b[i]-1).join(' ')
end

slice!メソッドで配列aの先頭から取り出しています。

STEP: 1 1 つの実数を出力

n = gets.chomp
puts n

STEP: 2 1 つの実数を出力 2

n = gets.chomp
puts n

STEP: 3 1 つの実数を出力 3

n = gets.to_f
puts "%.3f" % n.round(3)

STEP: 4 1 つの実数を出力 4

n, m = gets.split.map(&:to_f)
m = m.to_i
puts "%.#{m}f" % n.round(m)

FINAL問題 【実数をフォーマット指定して出力】複数の実数を出力

q = gets.to_i
q.times do
    n, m = gets.split.map(&:to_f)
    m = m.to_i
    puts "%.#{m}f" % n.round(m)
end

STEP: 1 数値を半角スペース埋めで出力

n = gets.to_i
puts "%3d" % n

STEP: 2 数値をゼロ埋めで出力

n = gets.to_i
puts "%03d" % n

STEP: 3 複数の数値を半角スペース埋めで出力

n = gets.to_i
n.times do
    m = gets.to_i
    puts "%3d" % m
end

STEP: 4 数値を M けた半角スペース埋めで出力

n, m = gets.split.map(&:to_i)
puts "%#{m}d" % n

FINAL問題 【出力幅を指定して出力】N 個の数値を M けた半角スペース埋めで出力

n, m = gets.split.map(&:to_i)
n.times do
    i = gets.to_i
    puts "%#{m}d" % i
end

STEP: 1 2 つの文字列を出力

s = gets.chomp
t = gets.chomp
puts "#{s} + #{t} = #{s + t}"

STEP: 2 文字列と N 個の整数の出力

n, a, b = gets.split.map(&:to_i)
array = []
n.times do
    array << "(#{a}, #{b})"
end
puts array.join(', ')

STEP: 3 九九表を罫線入りで出力

(1..9).each do |i|
    a = []
    (1..9).each do |j|
        a << "%#2d" % (i * j)
    end
    puts a.join(' | ')
    if i < 9
        # 2文字 * 9個 + 3文字 * 8個
        puts "=" * 42
    end
end

STEP: 4 ペアの数値の入った表を罫線入りで出力

h, w, a, b = gets.split.map(&:to_i)
array = ["(#{a}, #{b})"] * w
(1..h).each do |i|
    puts array.join(' | ')
    if i < h
        puts "=" * (6 * w + 3 * (w - 1))
    end
end

FINAL問題 【出力形式を指定して出力】ペアの数値の入った表を罫線入りで出力 2

h, w, a, b = gets.split.map(&:to_i)
array = ["(#{"%9d"% a}, #{"%9d"% b})"] * w
(1..h).each do |i|
    puts array.join(' | ')
    if i < h
        puts "=" * (22 * w + 3 * (w - 1))
    end
end
8
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
0