九九の表示
動的にサイズを変えられるようにしてみました。
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 - JavaScript
printfは使えないので。
1 2 3 4 5 6 7 8 9 | function lpad(str, n) {
return str.length < n ? (new Array(n - str.length + 1).join(' ') + str) : str;
}
var n = 10;
for(var i=1; i<n; i++) {
for(var j=1; j<n; j++) {
pp(i + " * " + j + " = " + lpad('' + (i * j), 2));
}
}
|
すみません。上記のpp関数は自分のローカル用デバッグ出力関数です。 rhinoならprintとかに置き換えてください。 で、↓はalertで表示する場合。 100行alertはひどいので10回に分けて。 alertのフォントは普通プロポーショナルなのが悲しいところ。
1 2 3 4 5 6 7 8 9 10 11 12 | function lpad(str, n) {
return str.length < n ? (new Array(n-str.length+1).join(' ') + str) : str;
}
var n = 10;
var list = [];
for(var i=1; i<n; i++) {
for(var j=1; j<n; j++) {
list.push(i + " * " + j + " = " + lpad('' + (i*j), 2));
}
alert(list.join("\n"));
list = [];
}
|
JS ならではの書き方を。
1 | javascript:for($='<table>',i=0;i++<9;)for(j=0;j++<9;)$+='<tr><td>'+i+' * '+j+' = '+'</td><td align=right>'+i*j+'</td></tr>';$+'</table>'
|
面白くない答えですが・・・ 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);
|





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