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 です。私が間違っていたことを教えてください
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 です。私が間違っていたことを教えてください
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 を返します。