LL Golf Hole 6 - 10進数を2進数に基数変換する
Posted feedbacks - XSLT
正攻法で。 冒頭の 変数b の値が基数で、2~10まで対応してます。 短くとか.. 勘弁してください
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 | <x:stylesheet version="2.0"
xmlns:x="http://www.w3.org/1999/XSL/Transform"
xmlns:s="http://www.w3.org/2001/XMLSchema"
xmlns:f="http://www.w3.org/2005/xpath-functions"
xmlns:y="uri:ja.doukaku.org:my-functions"
>
<x:variable name="b" as="s:integer" select="2"/>
<x:output method="text"/>
<x:template match="/">
<x:for-each select="0 to 256">
<x:value-of select="y:f(.)"/>
<x:text>
</x:text>
</x:for-each>
</x:template>
<x:function name="y:f" as="s:string">
<x:param name="n" as="s:integer"/>
<x:value-of select="if ($n=0) then '0' else f:string-join(f:reverse(y:g($n)),'')"/>
</x:function>
<x:function name="y:g" as="s:string*">
<x:param name="n" as="s:integer"/>
<x:if test="$n>0">
<x:sequence select="s:string($n mod $b)"/>
<x:sequence select="y:g($n idiv $b)"/>
</x:if>
</x:function>
</x:stylesheet>
|
短くなった。卑怯くさいけど。 #7254のコードを利用してますが、 基数だけは弄れるようにしておきました。
1 2 3 4 | <stylesheet version="2.0" xmlns="http://www.w3.org/1999/XSL/Transform">
<import href="http://tinyurl.com/58455r"/>
<variable name="b" select="2"/>
</stylesheet>
|



takano32
#7211()
[
Ruby
]
Rating0/6=0.00
与えられた10進数の整数を2進数に変換してください。ただし、与えられる整数は0以上とします。
与える整数についてはリテラルで与える、標準入力で与える、引数で与えるなどは自由とします。
余力のあるものはこのプログラムを短くしてみたり、さまざまな基数への変換に対応させてみてください。
※LL Future実行委員の高野光弘です。この出題は LL Future公式の出題であり、優れたものについてはLL Golfのセッションでご紹介させていただくかもしれません。ご理解の上、ご投稿ください。また、LL Futureのチケットは現在も発売中です。よろしければ、メインイベントの方にもぜひご参加ください。
see: Integer - Rubyリファレンスマニュアル
Rating0/6=0.00-0+
[ reply ]