Я разработал программу, которая принимает пользовательский ввод для каждого числа в числовом треугольнике и отображает на консоли, является ли это треугольником Паскаля или нет. Проблема в том, что код продолжает отображать, что числовой треугольник не является треугольником Паскаля, когда он им является. Мне просто интересно, что может быть причиной того, что он продолжает отображать «Это не треугольник Паскаля», даже если это так. Спасибо.
def checkIfPascal(dataLines):
size = int(dataLines[0])
n = 2 * size + 1
grid = [[0 for x in range(n)] for y in range(size)]
left = 1
# do not read first line
for i in range(size, 0, -1):
parts = dataLines.split(' ')
count = 0
for p in parts:
grid[i - 1][left + 2 * count] = int(p)
count += 1
left += 1
# if there are not n+1 numbers, then it is not pascal
if (count != i):
return False
left = 1
for i in range(size - 1, -1, -1):
if i == 0:
return (grid[i][left] == 1)
numbers = i + 1
count = 0
while count < numbers:
current = grid[i][left + count * 2]
upperLeft = grid[i - 1][left - 1 + count * 2]
upperRight = grid[i - 1][left + 1 + count * 2]
if (current != (upperLeft + upperRight)):
return False
count += 1
left += 1
return False
# main function
dataLines = input("please enter the height: ")
rows = int(dataLines) # --> convert user input to an integer
def triangle(rows):
PrintingList = list()
for rownum in range (1, rows + 1): # use colon after control structure to denote the beginning of block of code
PrintingList.append([]) # append a row
for iteration in range (rownum):
newValue = input("Please enter the next number:")
PrintingList[rownum - 1].append(int(newValue))
print()
for item in PrintingList:
print (*item)
triangle(rows)
def main():
if checkIfPascal(dataLines):
print('It is a pascal triangle')
else:
print('It is not a pascal triangle')
main()
когда пользователь вводит числовой треугольник, который является треугольником Паскаля, он должен отображать «Это треугольник Паскаля» на консоли