九九の表示
動的にサイズを変えられるようにしてみました。
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 - XSLT
素直に if を使わない。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | <xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<xsl:output method="text" />
<xsl:template match="/" >
<xsl:for-each select="1 to 9">
<xsl:variable name="i" as="xs:integer" select="." />
<xsl:for-each select="1 to 9">
<xsl:value-of select="$i" />
<xsl:text> * </xsl:text>
<xsl:value-of select="." />
<xsl:text> = </xsl:text>
<xsl:variable name="elm" as="element()">
<xsl:element name="n">
<xsl:value-of select="$i*." />
</xsl:element>
</xsl:variable>
<xsl:apply-templates select="$elm" />
<xsl:text>
</xsl:text>
</xsl:for-each>
</xsl:for-each>
</xsl:template>
<xsl:template match="n">
<xsl:value-of select="." />
</xsl:template>
<xsl:template match="n[.<10]">
<xsl:text> </xsl:text>
<xsl:value-of select="." />
</xsl:template>
</xsl:stylesheet>
|





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