読者です 読者をやめる 読者になる 読者になる

平方根を返すコード

python code golf

先日、コードゴルフ(code golf)の用語と意味を知りました。
id:tokuhirom さんに教えて頂きました。ありがとうございます。屋内でもできる知的ゴルフです。

コードゴルフ
anarchy golf
Code Golf

試しに Square root を解いてみました。

import sys,math
S=[]
E=-1
while 1:
 l=sys.stdin.readline().rstrip('\n')
 if not l:
  break
 else:
  S.append(l)
for i in S:
 try:
  r=float(i)
 except:
  r=E
 if i[:2] == '0x':
  a=i[2:]
  h=a.split('.')
  r=int(h[0],16)
  if '.' in a:
   for f in map(lambda x,y:int(x,16)/float(y),h[1],map(lambda z:16**z,range(1,len(h[1])+1))):
    r+=f
 if i.find('inf')==1:
  print r+float('inf')
 elif i=='-0':
  print '-%.9f'%(0)
 elif r<0:
  print 'nan'
 else:
  print '%-.9f'%(math.sqrt(r))

コードが汚いし、多分、冗長も多い。-0 の取扱い方が分からなくてハードコーディング(- -#
気になるサイズは、

size: 509
time: 0.109639 sec
status: 0

size: 509
time: 0.089606 sec
status: 0

size: 509
time: 0.109544 sec
status: 0

でした。
ちなみに python の1番の方は 103 バイトでした。何て無能な(T T)

広告を非表示にする