Итак, немного моего мыслительного процесса, прежде чем показывать вам код.Очевидно, что есть девять строк, или, в общем, n * 2 + 1
строк.Потому что мы должны считать до 0 и обратно.Вот сколько раз вам нужно вызывать print.
Теперь, если вы добавите номера строк к ожидаемому результату и будете рассматривать его как таблицу, описывающую функцию f(i, n)
, где i
- номер строки, иn
- начальное и конечное значение.что такое f
?Вы можете записать формулу?Например,
i f(i, 4)
0 4
1 3
2 2
3 1
4 0
5 1
6 2
7 3
8 4
Мы можем записать базовую структуру кода, мы до сих пор не знаем, как выглядит f
, но предположим, что она у нас есть:
for i in range(2*n+1):
print f(i)
И,что такое f
?Теперь вам нужно быть немного креативным и, возможно, немного поэкспериментировать.Я попытался использовать простые арифметические комбинации i
и n
для соответствия f(i, n)
, и я быстро заметил, что n - i
работает, пока мы не достигнем второй половины результата, которая отличается только на -
знак.
i f(i, 4) n - i
0 4 4
1 3 3
2 2 2
3 1 1
4 0 0
5 1 -1
6 2 -2
7 3 -3
8 4 -4
Тааак, возьмите абсолютное значение n - i
или i - n
, что угодно.
def f(i, n):
return abs(n-i)