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です。私が間違っていたことを教えてください。私のPythonコードで三角形の数字をチェックするのに間違っていますか?
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です。私が間違っていたことを教えてください。私のPythonコードで三角形の数字をチェックするのに間違っていますか?
any()
は、真または偽を返します。それを整数n
と比較しています。
return n in arr
編集:あなたも、最初の場所のように配列を作成しないようにすることができ、あるいはいっそのこと、あなただけの全体if..else
文を削除し、単純に置き換えることができ
if n in arr:
に行を変更この:それはn
が三角形であると認めるときは
def Triangular(n):
arr = []
for i in range(n):
if i*(i+1)/2 == n:
return True
return False
これはすぐにTrueを返します。リストの終わりに達しても何も見つからない場合はfalseを返します。
あなたの答えをありがとう。 –
あなたは番号が三角数であるかどうかを確認する代わりにこのコードを使用することができます:
def Triangular(n):
import math
x = (math.sqrt(8*n + 1) - 1)/2
if x - int(x) > 0:
return False
else:
return True
テストケースは何ですか? – n1c9