2012-09-22 99 views
0

我試圖做出認定要使用此代碼數的函數:整數查找問題

def get(x): 
    y=1 
    while (x/y != 1): 
     y= y+1 
    return y 

但它一直給我的答案+ 1一樣的一半,如果我把6它給了我4,如果我把它放在500它給了我251.

回答

1

你的問題是,它正在做整數除法。所以,6/4計算結果爲1(在python3,真司將踢,我想你的測試將工作)

解決這一問題將是這樣做的最佳方式:

while x != y: 
    ... 

和當然,這些測試只能用整數來完成......一旦你傳入一個浮點數,就很難說會發生什麼。

0

我覺得這是你在找什麼 -

def get(x): 
    y=1.0 
    while (x/y != 1): 
      print y, x 
      y= y+1 
    return y 

試試下面的函數調用 -

>>> get(5.0) 

1和1.0的伎倆。查閱python文檔以獲得更多理解!