1
def Triangular(n):
    arr = []
    for i in range(n):
        T = i*(i+1)/2
        arr.append(T)
    if n == any(arr):
        return True
    else:
        return False

すべてのテスト ケースは False です。私が間違っていたことを教えてください

4

2 に答える 2

1

any()ブール値の True または False を返します。n、整数と比較しています。行を次のように変更します

if n in arr:

または、if..elseステートメント全体を削除して、単純に次のように置き換えることもできます。

return n in arr

編集:次のように、最初に配列を作成することを避けることもできます:

def Triangular(n):
    arr = []
    for i in range(n):
        if i*(i+1)/2 == n:
            return True
    return False

nが三角形であることがわかると、すぐに True を返します。リストの最後まで到達しても何も見つからない場合は、false を返します。

于 2016-04-13T03:59:13.360 に答える