九九の表示
動的にサイズを変えられるようにしてみました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | static void Main(string[] args)
{
kuku(9);
kuku(99);
kuku(999);
}
static void kuku(int n)
{
int len = n.ToString().Length;
int xLen = (n * n).ToString().Length;
string format = "{0, " + len + "} * {1, " + len + "} = {2, " + xLen + "}";
for (int i = 1; i <= n ; ++i)
for (int j = 1; j <= n ; ++j)
Console.WriteLine(format, i, j, i * j);
}
|
面白くない答えですが・・・ sayは、printlnだと思ってください。 t_ishida
1 | for(var i=1;i<10;i++) for(var j = 1;j<10;j++) say([i,'*',j,'=',''].join(' ') + (i * j > 9 ? '' : ' ') + i * j);
|
Posted feedbacks - Ruby
そのまんま
1 2 3 4 5 | (1..9).each{|x|
(1..9).each{|y|
printf("%d * %d = %2d\n", x,y,x*y)
}
}
|
初投稿。思いつきで、何の工夫もなし。
1 2 3 4 5 | (1..9).each do |i|
(1..9).each do |j|
puts "#{i} * #{j} " << "= " << (i * j).to_s.rjust(2)
end
end
|
ちょっと細かいところだけど、
puts "#{i} * #{j} " << "= " << (i * j).to_s.rjust(2)
を
puts "#{i} * #{j} = " << (i * j).to_s.rjust(2)
に直した。
1 2 3 4 5 | (1..9).each do |i|
(1..9).each do |j|
puts "#{i} * #{j} = " << (i * j).to_s.rjust(2)
end
end
|
1 2 3 4 5 6 7 8 9 | def product(xs, ys)
xs.inject([]) {|r, x|
r + ys.map {|y| [x, y] }
}
end
product(1..9, 1..9).each do |x, y|
printf "%d * %d = %2d\n", x, y, x * y
end
|
uptoがなかったのでとりあえず
1 2 3 4 5 | 1.upto(9){|x|
1.upto(9){|y|
printf("%2d * %2d = %2d\n",x,y,x*y)
}
}
|
あえてsprintfの類やループを使わず.
1 2 3 4 5 6 7 8 9 10 11 12 | i, x, y = 0, 0, 0
puts (('o' * 9 + "\n") * 9).
gsub(/^/) { (y += 1).to_s + ':' }.
gsub(/o/) { i = x; x = (x + 1) % 9; i + 1 }.
gsub(/^(\d+):(.+)/) {
y, line = $~[1..-1]
line.gsub(/\d/) {
"#{y} * #{$&} = " +
(' ' + (y.to_i * $&.to_i).to_s)[-2, 2] +
"\n"
}
}.gsub("\n\n", "\n")
|
1 | puts (1..9).map{|y|(1..9).map{|x|sprintf "%2d * %2d = %2d",x,y,x*y}}
|






にしお
#3418()
Rating0/2=0.00
なお、この問題は掛け算をどうやるかではなく、 どうやって右端がそろうようにレイアウトするかに重点を置いているので、 下のようなへこんだ出力は禁止です。
2 replies [ reply ]