чтобы отдельно не выводить первые числа, можно принт вывести в начале цикла. но до меня долго не доходило, "a, b = b, a + b" пока не посмотрел видос)) n=int(input()) a=1 b=1 for i in range (1, n +1): print(a, end = ' ') a, b = b, a + b
Правильнее будет записать так! a=int(input('ввести число: ')) fb1=1 fb2=fb1+1 print(fb1,fb2,end=' ') for i in range(2,a): fb1,fb2=fb2,fb1+fb2 print(fb2,end=' ') a-=1 или через цикл while: a=int(input('ввести число: ')) fb1=1 fb2=fb1+1 print(fb1,fb2,end=' ') while a>2: fb1,fb2=fb2,fb1+fb2 print(fb2,end=' ') a-=1 тогда результат будет: ввести число: 6 1 2 3 5 8 13
@@younglinux я наверное не туда что то написал, потому что у меня не сработало, но за то работает если в существующем коде f2 = 1 изменить на f2 = 2. Также вопрос как сделать так что бы после изменений на 5:31 печаталось 1 1 2 3 5..... а не 1 1 1 2 3 5.... Спасибо за видео
все уже решил сам, вот так: n = (int(input("Input until which number count "))) f1 = 0 f2 = 1 print(f1, f2, end=' ') while f2 < n: f1, f2 = f2, f1 + f2 if f2 > n: break print(f2, end=' ')
Если человек ввел 6, значит на экран надо вывести 6 элементов ряда. Поскольку первые два элемента ряда Фибоначчи (две первые единицы) выводятся до цикла, то количество повторов цикла должно быть 4 (на 2 меньше, чем введенное число). Поскольку до цикла мы не меняем _n_ и оно остается равным 6-ти, то чтобы итераций было только 4, надо уменьшать _n_ не до 0, а до 2-х. В теле цикла выражение n -=1, уменьшает значение n на единицу на каждой итерации цикла.
В выражении f1, f2 = f2, f1+ f2 переменной f1 присваивается значение f2, переменной f2 присваивается сумма f1 + f2. Если эту сокращенную запись разложить, то должно быть так: b = f1 f1 = f2 f2 = b + f2
@@younglinux Скажите пожалуйста, групповое присваивание и множественное присваивание это одно и то же или разные понятия? Где можно прочитать про это? Может, подскажете автора? (в интернете как-то совсем поверхностно).
Со Степика трафик идёт.
и не прекращается))
чтобы отдельно не выводить первые числа, можно принт вывести в начале цикла. но до меня долго не доходило, "a, b = b, a + b" пока не посмотрел видос))
n=int(input())
a=1
b=1
for i in range (1, n +1):
print(a, end = ' ')
a, b = b, a + b
Изучаю Rust, свой первый язык. Там есть задача написать Генератор Фибоначи. Благодаря вам я понял формулу) спасибо)
a=1
b=1
i=1
while i 1
2 -> 1
3 -> 2
4 -> 3
5 -> 5
6 -> 8
7 -> 13
8 -> 21
9 -> 34
Как же вы умело орудуюте циклами , как это постичь
Зачем так сложно?
c=1
a=0
a1=1
n=int(input("введите значение "))
for i in range(n):
c=a+a1
a=a1
a1=c
print(c)
Кажется, это проще и понятнее
Такой вариант не выводит на экран первый элемент ряда Фибоначчи.
Правильнее будет записать так!
a=int(input('ввести число: '))
fb1=1
fb2=fb1+1
print(fb1,fb2,end=' ')
for i in range(2,a):
fb1,fb2=fb2,fb1+fb2
print(fb2,end=' ')
a-=1
или через цикл while:
a=int(input('ввести число: '))
fb1=1
fb2=fb1+1
print(fb1,fb2,end=' ')
while a>2:
fb1,fb2=fb2,fb1+fb2
print(fb2,end=' ')
a-=1
тогда результат будет:
ввести число: 6
1 2 3 5 8 13
скажи, зачем минусовать "a -= 1"? и почему while a > 2 ,"именно больше 2" что означает это 2?
а как сделать чтобы например при поиске ряда чисел фибоначи до вводимого н-го значения в финале выводилось только четные числа?
print(f2, end=' ') поместить в тело if f2 % 2 == 0:
@@younglinux я наверное не туда что то написал, потому что у меня не сработало, но за то работает если в существующем коде f2 = 1 изменить на f2 = 2. Также вопрос как сделать так что бы после изменений на 5:31 печаталось 1 1 2 3 5..... а не 1 1 1 2 3 5.... Спасибо за видео
все уже решил сам, вот так:
n = (int(input("Input until which number count ")))
f1 = 0
f2 = 1
print(f1, f2, end=' ')
while f2 < n:
f1, f2 = f2, f1 + f2
if f2 > n:
break
print(f2, end=' ')
@@ruyzaki696 до цикла может быть например так: print(f2, end=' ')
- В конце ролика при выводе до 100 на экран вывелось 1 1 1 2 3 5... , т.е. ряд начался с трёх единиц! Разве это правильно? Что не так? Как правильно?
Нужно убрать f2 из print(), которая до цикла while (над ним)
@@younglinux спасибо за быстрый ответ! ; )
скажи, зачем минусовать "a -= 1"? и почему while a > 2 ,"именно больше 2" что означает это 2?
Если человек ввел 6, значит на экран надо вывести 6 элементов ряда. Поскольку первые два элемента ряда Фибоначчи (две первые единицы) выводятся до цикла, то количество повторов цикла должно быть 4 (на 2 меньше, чем введенное число). Поскольку до цикла мы не меняем _n_ и оно остается равным 6-ти, то чтобы итераций было только 4, надо уменьшать _n_ не до 0, а до 2-х. В теле цикла выражение n -=1, уменьшает значение n на единицу на каждой итерации цикла.
спасибо большое
Привет, а как сделать так что бы числа выводились с новой строки
end='
'
@@batyrshirmatov8297 а что выполняет функция f1 f2 и тд
@@batyrshirmatov8297 а для чего выполняет f1 f2 и тд?
а как сделать что n включена в список?
Если n не является элементом ряда Фибоначчи, она не может быть в него включена.
Рекурсия плачет в сторонке
Откуда формула f1, f2 = f2, f1 = f2 Я не понимаююю
Хотя в целом видео полезное
В выражении f1, f2 = f2, f1+ f2 переменной f1 присваивается значение f2, переменной f2 присваивается сумма f1 + f2. Если эту сокращенную запись разложить, то должно быть так:
b = f1
f1 = f2
f2 = b + f2
@@younglinux как к такому самому приходить 😅
@@kartoooshka к групповому присваиванию в Питоне (вроде a, b, c = 10, 3, 12) лучше привыкнуть. Оно много где используется.
@@younglinux про него я знаю, меня больше пугает, как доходить да таких формул, как с f1, f2... Нужно срочно прокачивать логику ))
@@younglinux Скажите пожалуйста, групповое присваивание и множественное присваивание это одно и то же или разные понятия?
Где можно прочитать про это? Может, подскажете автора? (в интернете как-то совсем поверхностно).