0

このコードで必要な数を見つける関数を作成しようとしています:

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

しかし、それは答えの半分 + 1 を与え続けます。たとえば、6 を入れると 4 になり、500 を入れると 251 になります。

4

2 に答える 2

1

あなたの問題は、整数除算を行っていることです。したがって、 1に6/4評価されます。(python3では、真の除算が開始され、テストが機能すると思います)

これを修正する最善の方法は、次のようにすることです。

while x != y:
    ...

もちろん、これらのテストは実際には整数のみを使用して実行する必要があります...浮動小数点数を渡すと、何が起こるかわかりません。

于 2012-09-22T02:42:32.993 に答える
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 のドキュメントをチェックしてください。

于 2012-09-22T02:50:46.180 に答える