筆記國度

在這裡放著一些我自己的筆記

[SPOJ] 902. Hangover.py

| Comments

題目網址:連結

解題報告

  • 浮點數與 比較 (包含誤差)
    def fzero(fa):
        delta = 1e-5
        return -1 if fa < -delta else ( fa > delta )
    
from sys import stdin

def fzero(fa):
    delta = 1e-5
    return -1 if fa < -delta else ( fa > delta )

ar1, ln1 = [.0]*300, 1
while ln1<300 and fzero(ar1[ln1-1]-5.20)<1:
    ar1[ln1],ln1 = ar1[ln1-1]+1/(ln1+1), ln1+1
ar1[ln1],ln1 = 10.0, ln1+1
while True:
    fa = float(stdin.readline())
    if not fzero(fa):
        break
    for i in range(ln1):
        if fzero(fa-ar1[i])<0:
            print(i,'card(s)')
            break

Comments

comments powered by Disqus