Программа получает на вход последовательность целых неотрицательных чисел, каждое число записано в отдельной строке. Последовательность завершается числом 0, при считывании которого программа должна закончить свою работу и вывести количество членов последовательности (не считая завершающего числа 0). Числа, следующие за числом 0, считывать не нужно.
Решение задачи от разработчиков на Python:
Copy to Clipboard
Другое решение задачи на Python:
Copy to Clipboard
Смотреть видео — Задача «Длина последовательности» решение на Python
Делитесь с друзьями ссылкой на ответ и задавайте вопросы в комментариях!
Источник: pyanswer.site
Анатолий
Анатольевич
Eфремов
Цикл while (“пока”) позволяет выполнить одну и ту же последовательность действий, пока проверяемое условие истинно. Условие записывается до тела цикла и проверяется до выполнения тела цикла. Как правило, цикл while используется, когда невозможно определить точное значение количества проходов исполнения цикла.
Последовательность целых чисел
Синтаксис цикла while в простейшем случае выглядит так:
while условие:
блок инструкций
При выполнении цикла while сначала проверяется условие. Если оно ложно, то выполнение цикла прекращается и управление передается на следующую инструкцию после тела цикла while. Если условие истинно, то выполняется инструкция, после чего условие проверяется снова и снова выполняется инструкция. Так продолжается до тех пор, пока условие будет истинно. Как только условие станет ложно, работа цикла завершится и управление передастся следующей инструкции после цикла.
Например, следующий фрагмент программы напечатает на экран квадраты всех целых чисел от 1 до 10. Видно, что цикл while может заменять цикл for . in range(. ) :
i = 1
while i 0:
n //= 10
length += 1
В этом цикле мы отбрасываем по одной цифре числа, начиная с конца, что эквивалентно целочисленному делению на 10 (n //= 10), при этом считаем в переменной length, сколько раз это было сделано.
В языке Питон есть и другой способ решения этой задачи: length = len(str(i)).
Инструкции управления циклом
После тела цикла можно написать слово else: и после него блок операций, который будет выполнен один раз после окончания цикла, когда проверяемое условие станет неверно:
i = 1
while i 9 .
Выходные данные
Выведите ответ на задачу.
| Ввод | Вывод |
| 15 | 3 |
Решение
n = int(input())
i = 2
while i * i n:
print(n)
Задача №3644. Список степеней двойки
По данному числу N распечатайте все целые степени двойки, не превосходящие N, в порядке возрастания.
Операцией возведения в степень пользоваться нельзя!
Входные данные
Вводится натуральное число.
Выходные данные
Выведите ответ на задачу.
| Ввод | Вывод |
| 50 | 1 2 4 8 16 32 |
Решение
n = int(input())
i = 1
while i k ≥ N.
Операцией возведения в степень пользоваться нельзя!
Входные данные
Вводится натуральное число.
Выходные данные
Выведите ответ на задачу.
| Ввод | Вывод |
| 7 | 3 |
Решение
n = int(input())
i = 1
k = 0
while i 9 , и завершается числом 0. Определите значение наибольшего элемента последовательности.
Входные данные
Вводится последовательность целых чисел, оканчивающаяся числом 0 (само число 0 в последовательность не входит, а служит как признак ее окончания).
Выходные данные
Выведите ответ на задачу.
| Ввод | Вывод |
| 1 7 9 |
9 |
Решение
a = -1
m = 0
while a != 0:
a = int(input())
if a >= m:
m = a
print(m)
Задача №3654. Количество элементов, которые больше предыдущего
Последовательность состоит из натуральных чисел и завершается числом 0. Определите, сколько элементов этой последовательности больше предыдущего элемента.
Входные данные
Вводится последовательность целых чисел, оканчивающаяся числом 0 (само число 0 в последовательность не входит, а служит как признак ее окончания).
Выходные данные
Выведите ответ на задачу.
| Ввод | Вывод |
| 1 7 9 |
2 |
Решение
elem = int(input())
i = 0
while elem != 0:
f = int(input())
if f != 0 and elem max1:
max2 = max1
max1 = elem
elif elem > max2:
max2 = elem
elem = int(input())
print(max2)
Задача №3659. Числа Фибоначчи
Последовательность Фибоначчи определяется так:
По данному числу n определите n-е число Фибоначчи φn.
Входные данные
Вводится натуральное число n.
Выходные данные
Выведите ответ на задачу.
| Ввод | Вывод |
| 6 | 8 |
Решение
n = int(input())
a = 0
b = 1
count = 0
s = 0
if n == 0:
print(0)
elif n == 1:
print(1)
elif n > 1:
while count != n — 1:
s = a + b
a, b = b, s
count += 1
print(s)
Задача №3660. Номер числа Фибоначчи
Последовательность Фибоначчи определяется так:
Дано натуральное число A. Определите, каким по счету числом Фибоначчи оно является, то есть выведите такое число n, что φn = A.
Если А не является числом Фибоначчи, выведите число -1.
Входные данные
Вводится натуральное число A.
Выходные данные
Выведите ответ на задачу.
| Ввод | Вывод |
| 8 | 6 |
| Ввод | Вывод |
| 10 | -1 |
Решение
f = 0
f1 = 1
f2 = 0
i = 0
a = int(input())
while f prev2 and prev1 > elem:
count += 1
prev2 = prev1
prev1 = elem
elem = int(input())
print(count)
Источник: www.izenglish.ru
Решение модуля 1.5 Введение в программирование C++
Модуль 1.5 (Цикл while) Данный модуль научит писать код, который позволяет автоматически повторять одни и те же действия несколько раз. В программировании повторение действий называется циклом.
Ниже представлены примеры задач с решением на C++ на тему Цикл while.
По данному целому числу N распечатайте все квадраты натуральных чисел, не превосходящие N, в порядке возрастания.
#include #include using namespace std; int main() < int n, i; cin >> n; i = 1; while (pow(i, 2) return 0; >
Дано целое число, не меньшее 2. Выведите его наименьший натуральный делитель, отличный от 1.
#include #include using namespace std; int MinDivisor(int n,int d=2) < if (d else MinDivisor(n, d + 1); > else return n; > int main()< int n; cin >> n; cout
По данному числу N распечатайте все целые степени двойки, не превосходящие N, в порядке возрастания.
#include #include using namespace std; int main() < int n, i; cin >> n; i = 0; while (pow(2,i) return 0; >
Дано натуральное число N. Выведите слово YES, если число N является точной степенью двойки, или слово NO в противном случае.
#include #include using namespace std; int main() < int n, i; cin >> n; i = 0; while (i i += 1; if (i == 100) < cout > return 0; >
Программа получает на вход последовательность целых неотрицательных чисел, каждое число записано в отдельной строке. Последовательность завершается числом 0, при считывании которого программа должна закончить свою работу и вывести количество членов последовательности (не считая завершающего числа 0).
Числа, следующие за числом 0, считывать не нужно.
#include #include using namespace std; int main() < int n, i; n = 1; i = 0; while (n != 0) < cin >> n; i += 1; > cout
Определите сумму всех элементов последовательности, завершающейся числом 0.
#include #include using namespace std; int main() < int n, sum; n = 1; sum = 0; while (n != 0) < cin >> n; sum += n; > cout
Последовательность состоит из натуральных чисел и завершается числом 0. Определите значение наибольшего элемента последовательности.
#include using namespace std; int main() < int max,a; cin>>a; max=a; while (a!=0)< if (a>max) max=a; cin>>a; > cout
Последовательность состоит из натуральных чисел и завершается числом 0. Определите, какое количество элементов этой последовательности, равны ее наибольшему элементу.
#include #include using namespace std; int main() < int n, max,i; i = 0; n = 1; max = -1000; while (n != 0) < cin >> n; if (max < n) < max = n; i = 1; >else if (max == n) < i += 1; >> cout
Последовательность состоит из натуральных чисел и завершается числом 0. Определите значение второго по величине элемента в этой последовательности, то есть элемента, который будет наибольшим, если из последовательности удалить наибольший элемент.
#include using namespace std; int main() < int i, n, m = 1; cin >> n; i = n; while (n != 0) < cin >> n; if (n >= i) < m = i; i = n; >else if (n >= m) < m = n; >else < continue; >> cout
Последовательность Фибоначчи определяется так:
F(0) = 0, F(1) = 1, …, F(n) = F(n−1) + F(n−2).
По данному числу N определите N-е число Фибоначчи F(N).
#include #include using namespace std; int main() < int n, f1, f2, i, tmp; cin >> n; i = 3; f1 = 1; f2 = 1; while (i cout
Последовательность Фибоначчи определяется так:
F(0) = 0, F(1) = 1, …, F(n) = F(n−1) + F(n−2).
Дано натуральное число A. Определите, каким по счету числом Фибоначчи оно является, то есть выведите такое число N, что F(N) = A. Если А не является числом Фибоначчи, выведите число -1.
#include using namespace std; int main() < int N, f2 = 2, f1 = 1, i = 1, d = 0; cin >> N; while (i <=N) < if (N == i) < cout << f2; return 0; >f2++; d = i; i+= f1; f1 = d; > cout
Дана последовательность натуральных чисел, завершающаяся числом 0. Определите, какое наибольшее число подряд идущих элементов этой последовательности равны друг другу. Если не нашлось ни одной пары, тройки и т.д. элементов, равных друг другу, то программа должна вывести число 1.
#include using namespace std; int main() < int a = 1, p = 1, n = 0, i = 0; while (a != 0) < cin >> a; if (a == n) < p++; >if (i < p) < i = p; >if (a != n) < p = 1; >n = a; > cout
Элемент последовательности называется локальным максимумом, если он строго больше предыдущего и последующего элемента последовательности. Первый и последний элемент последовательности не являются локальными максимумами.
Дана последовательность натуральных чисел, завершающаяся числом 0. Определите количество строгих локальных максимумов в этой последовательности.
#include using namespace std; int main() < int a,b=0,c=0,d=0; while (cin>>a a!=0) < if (b>a b>c c!=0) d++; c=b; b=a; > cout
Определите наименьшее расстояние между двумя локальными максимумами последовательности натуральных чисел, завершающейся числом 0. Если в последовательности нет двух локальных максимумов, выведите число 0.
Начальное и конечное значение при этом локальными максимумами не считаются.
Расстоянием считается количество пробелов между элементами. В качестве примера смотрите первый тест.
#include using namespace std; int main() < int prv, cur, nxt, pos = 0, prv_max = 0, min_len = 0, cur_len; int count = 0; if (cin>>prv prv) < if (cin >> cur cur) < if (cin >> nxt) < pos = 2; while (nxt) < if ((prv < cur) (cur >nxt)) < if (prv_max != 0 ) < cur_len = pos — prv_max; if (min_len == 0) min_len = cur_len; else min_len = min(min_len,cur_len); >prv_max = pos; > prv = cur; cur = nxt; cin >> nxt; pos++; > > > > cout
Источник: zazloo.ru