Программа получает на вход последовательность целых неотрицательных чисел, каждое число записано в отдельной строке. Последовательность завершается числом 0, при считывании которого программа должна закончить свою работу и вывести количество членов последовательности (не считая завершающего числа 0).
Числа, следующие за числом 0, считывать не нужно.
Входные данные
Вводится последовательность целых чисел, оканчивающаяся числом 0 (само число 0 в последовательность не входит).
Выходные данные
Выведите ответ на задачу.
Примеры
входные данные
1
7
9
0
5
выходные данные
3
Амина Куванкина Вопрос задан 30 сентября 2019 в 5 — 9 классы, true»> Поделиться
Источник: matfaq.ru
ПИТОНТЬЮТОР Занятие 6 Длина последовательности
Решение задач на С++
Задача A. Длина последовательности
Программа получает на вход последовательность целых неотрицательных чисел, каждое число записано в отдельной строке. Последовательность завершается числом 0, при считывании которого программа должна закончить свою работу и вывести количество членов последовательности (не считая завершающего числа 0).
Числа, следующие за числом 0, считывать не нужно.
- int x, length = -1;
- do
- length++;
- cin>>x;
- >
- while (x);
- cout
Задача B. Сумма последовательности
Определите сумму всех элементов последовательности, завершающейся числом 0.
Числа, следующие за нулем, считывать не нужно.
- int x, sum = 0;
- cin >> x;
- while (x)
- sum += x;
- cin >> x;
- >
- cout
Задача C. Среднее значение последовательности
Определите среднее значение всех элементов последовательности, завершающейся числом 0.
Числа, следующие за нулем, считывать не нужно.
- int x, sum = 0, length = 0;
- while (cin>>x x)
- sum += x;
- length++;
- >
- double rms = ( double )sum / length;
- printf( «%0.15f» ,rms);
Задача D. Количество четных элементов последовательности
Определите количество четных элементов в последовательности, завершающейся числом 0.
Само число 0, и все, что следует за ним, учитывать не нужно.
- int x, count = 0;
- cin >> x;
- while (x)
- if (!(x
- cin >> x;
- >
- cout
Задача E. Максимум последовательности
Последовательность состоит из натуральных чисел и завершается числом 0. Определите значение наибольшего элемента последовательности.
Числа, следующие за нулем, считывать не нужно.
7.4 Сумма чисел. «Поколение Python»: курс для начинающих. Курс Stepik
- int x;
- cin >> x;
- int Max = x;
- while (x)
- Max = max(Max,x);
- cin >> x;
- >
- cout
Задача F. Количество элементов, которые больше предыдущего
Последовательность состоит из натуральных чисел и завершается числом 0. Определите, сколько элементов этой последовательности больше предыдущего элемента.
Числа, следующие за числом 0, считывать не нужно.
- int prv, cur;
- cin >> cur;
- int count = 0;
- while (cur)
- prv = cur;
- cin >> cur;
- if (cur > prv)
- count++;
- >
- cout
Задача G. Второй максимум
Последовательность состоит из различных натуральных чисел и завершается числом 0. Определите значение второго по величине элемента в этой последовательности.
Числа, следующие за числом 0, считывать не нужно.
- int x;
- cin >> x;
- int max1 = x, max2 = -1;
- while (x)
- cin >> x;
- if (x > max1)
- max2 = max1;
- max1 = x;
- >
- else if ( x > max2 )
- max2 = x;
- >
- cout
Задача H. Второй максимум – 2
Последовательность состоит из натуральных чисел и завершается числом 0. Определите значение второго по величине элемента в этой последовательности, то есть элемента, который будет наибольшим, если из последовательности удалить наибольший элемент.
Числа, следующие за числом 0, считывать не нужно.
- int x;
- cin >> x;
- int max1 = x, max2 = -1;
- while (x)
- cin >> x;
- if (x > max1)
- max2 = max1;
- max1 = x;
- >
- else if ( x > max2 )
- max2 = x;
- >
- cout
Задача I. Количество элементов, равных максимуму
Последовательность состоит из натуральных чисел и завершается числом 0. Определите, какое количество элементов этой последовательности, равны ее наибольшему элементу.
Числа, следующие за числом 0, считывать не нужно.
- int x, count = 0;
- cin >> x;
- int max = x;
- while (x)
- if (x > max)
- max = x;
- count = 1;
- >
- else
- if (x == max)
- count++;
- cin >> x;
- >
- cout
Задача J. Сумма последовательности – 2
Найдите сумму последовательности натуральных чисел, если признаком окончания конца последовательности является два подряд идущих числа 0.
Числа, следующие после двух подряд идущих нулей считывать не нужно.
- int x;
- cin >> x;
- int sum = 0;
- if (x == 0)
- cin >> x;
- while (x)
- sum += x;
- cin >> x;
- if (x == 0)
- cin >> x;
- >
- cout
Задача K. Максимальное число идущих подряд равных элементов
Дана последовательность натуральных чисел, завершающаяся числом 0. Определите, какое наибольшее число подряд идущих элементов этой последовательности равны друг другу.
Числа, следующие за числом 0, считывать не нужно.
- int cur;
- cin >> cur;
- int base = cur, count = 0, count_max = 0;
- while (cur)
- if ( base == cur)
- count++;
- else
- base = cur;
- count = 1;
- >
- count_max = max(count_max, count);
- cin >> cur;
- >
- cout
Задача L. Максимальная длина монотонного фрагмента
Дана последовательность натуральных чисел, завершающаяся число 0. Определите наибольшую длину монотонного фрагмента последовательности (то есть такого фрагмента, где все элементы либо больше предыдущего, либо меньше).
Числа, следующие за числом 0, считывать не нужно.
- int prv, cur;
- cin >> prv;
- if (prv)
- cin >> cur;
- int count = 1, count_max = 1;
- int sgn_prv = cur — prv, sgn_cur;
- while (cur)
- sgn_cur = cur — prv;
- if (sgn_prv * sgn_cur > 0)
- count++;
- else
- if (sgn_prv * sgn_cur == 0)
- count = 1;
- else
- count = 2;
- count_max = max(count_max, count);
- sgn_prv = sgn_cur;
- prv = cur;
- cin >> cur;
- >
- cout
- >
- else
- cout
Задача M. Количество локальных максимумов
Элемент последовательности называется локальным максимумом, если он строго больше предыдущего и последующего элемента последовательности. Первый и последний элемент последовательности не являются локальными максимумами.
Дана последовательность натуральных чисел, завершающаяся числом 0. Определите количество строгих локальных максимумов в этой последовательности.
Числа, следующие за числом 0, считывать не нужно.
- int prv, cur, nxt;
- int count = 0;
- if (cin>>prv prv)
- if (cin >> cur cur)
- if (cin >> nxt)
- while (nxt)
- if ((prv < cur) (cur >nxt))
- count++;
- prv = cur;
- cur = nxt;
- cin >> nxt;
- >
- >
- >
- >
- cout
Задача N. Наименьшее расстояние между локальными максимумами
Определите наименьшее расстояние между двумя локальными максимумами последовательности натуральных чисел, завершающейся числом 0. Если в последовательности нет двух локальных максимумов, выведите число 0.
- 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
Дана последовательность натуральных чисел x1, x2, . xn. Стандартным отклонением называется величина
где —среднее арифметическое последовательности.
Определите среднеквадратичное отклонение для данной последовательности натуральных чисел, завершающейся числом 0.
- int x;
- cin >> x;
- int sum_x = 0, sum_x2 = 0, n = 0;
- double s, res;
- if (x)
- while (x)
- sum_x += x;
- sum_x2 += x*x;
- n++;
- cin >> x;
- >
- s = ( double )sum_x / n;
- if (n != 1)
- res = sqrt((sum_x2 — 2 * s * sum_x + n * s * s) / (n — 1));
- printf( «%0.11f» , res);
- >
- else
- cout
- >
Источник: cpptasksolver.blogspot.com
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Cancel Create
python_language / students / km63 / Filipenko_Dmytro / task4.py /
Code definitions
Code navigation index up-to-date
- Go to file T
- Go to line L
- Go to definition R
- Copy path
- Copy permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Cannot retrieve contributors at this time
349 lines (275 sloc) 11.1 KB
- Open with Desktop
- View raw
- Copy raw contents Copy raw contents Copy raw contents
Copy raw contents
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
# task1———————————————————— |
«»» |
По данному целому числу N распечатайте все квадраты натуральных чисел, |
не превосходящие N, в порядке возрастания. |
«»» |
n = int ( input ()) |
i = 1 |
while i ** 2 |
print ( i ** 2 ) |
i += 1 |
# —————————————————————— |
# task2———————————————————— |
«»» |
Дано целое число, не меньшее 2. |
Выведите его наименьший натуральный делитель, отличный от 1. |
«»» |
n = int ( input ()) |
i = 2 |
while n % i != 0 : |
i += 1 |
print ( i ) |
# —————————————————————— |
# task3———————————————————— |
«»» |
По данному натуральному числу N найдите наибольшую целую степень двойки, |
не превосходящую N. Выведите показатель степени и саму степень. |
Операцией возведения в степень пользоваться нельзя! |
«»» |
n = int ( input ()) |
p_of_two = 2 |
p = 1 |
while p_of_two |
p_of_two *= 2 |
p += 1 |
print ( p — 1 , p_of_two // 2 ) |
# —————————————————————— |
# task4———————————————————— |
«»» |
В первый день спортсмен пробежал x километров, |
а затем он каждый день увеличивал пробег на 10% от предыдущего значения. |
По данному числу y определите номер дня, на который пробег спортсмена составит не менее y километров. |
Программа получает на вход действительные числа x и y и должна вывести одно натуральное число. |
«»» |
x = int ( input ()) |
y = int ( input ()) |
i = 1 |
while x < y : |
x *= 1.1 |
i += 1 |
print ( i ) |
# —————————————————————— |
# task5———————————————————— |
«»» |
Вклад в банке составляет x рублей. Ежегодно он увеличивается на p процентов, |
после чего дробная часть копеек отбрасывается. |
Определите, через сколько лет вклад составит не менее y рублей. |
Выражение «дробная часть копеек отбрасывается» означает, |
что если у вас оказалось 123.4567 рублей, т. е. 123 рубля и 45.67 копеек, |
то после округления у вас получится 123 рубля и 45 копеек, т.е. 123.45 рублей. |
Программа получает на вход три натуральных числа: x, p, y и должна вывести одно целое число. |
«»» |
x = float ( input ()) |
p = int ( input ()) |
y = int ( input ()) |
i = 0 |
while x < y : |
x = x + x * p / 100 |
x = float ( int ( x * 100 )) / 100 |
i += 1 |
print ( i ) |
# —————————————————————— |
# task6———————————————————— |
«»» |
Программа получает на вход последовательность целых неотрицательных чисел, |
каждое число записано в отдельной строке. Последовательность завершается числом 0, |
при считывании которого программа должна закончить свою работу и вывести количество членов последовательности |
(не считая завершающего числа 0). Числа, следующие за числом 0, считывать не нужно. |
«»» |
n = 1 |
i = 0 |
while n != 0 : |
n = int ( input ()) |
i += 1 |
print ( i — 1 ) |
# —————————————————————— |
# task7———————————————————— |
«»» |
Определите сумму всех элементов последовательности, завершающейся числом 0. |
В этой и во всех следующих задачах числа, следующие за первым нулем, учитывать не нужно. |
«»» |
n = 1 |
s = 0 |
while n != 0 : |
n = int ( input ()) |
s += n |
print ( s ) |
# —————————————————————— |
# task8———————————————————— |
«»» |
Определите среднее значение всех элементов последовательности, завершающейся числом 0. |
«»» |
sum = len = 0 |
el = int ( input ()) |
while el != 0 : |
sum += el |
len += 1 |
el = int ( input ()) |
print ( sum / len ) |
# —————————————————————— |
# task9———————————————————— |
«»» |
Последовательность состоит из натуральных чисел и завершается числом 0. |
Определите значение наибольшего элемента последовательности. |
«»» |
max = 0 |
el = — 1 |
while el != 0 : |
el = int ( input ()) |
if el > max : |
max = el |
print ( max ) |
# —————————————————————— |
# task10———————————————————— |
«»» |
Последовательность состоит из натуральных чисел и завершается числом 0. |
Определите индекс наибольшего элемента последовательности. |
Если наибольших элементов несколько, выведите индекс первого из них. |
Нумерация элементов начинается с нуля. |
«»» |
i = 1 |
max_i = 1 |
max_n = 0 |
n = 1 |
while n != 0 : |
n = int ( input ()) |
if n > max_n : |
max_i = i |
max_n = n |
i += 1 |
print ( max_i ) |
# —————————————————————— |
# task11———————————————————— |
«»» |
Определите количество четных элементов в последовательности, завершающейся числом 0. |
«»» |
n = — 1 |
el = — 1 |
while el != 0 : |
el = int ( input ()) |
if el % 2 == 0 : |
n += 1 |
print ( n ) |
# —————————————————————— |
# task12———————————————————— |
«»» |
Последовательность состоит из натуральных чисел и завершается числом 0. |
Определите, сколько элементов этой последовательности больше предыдущего элемента. |
«»» |
p = int ( input ()) |
ans = 0 |
while p != 0 : |
num = int ( input ()) |
if num != 0 and p < num : |
ans += 1 |
p = num |
print ( ans ) |
# —————————————————————— |
# task13———————————————————— |
«»» |
Последовательность состоит из различных натуральных чисел и завершается числом 0. |
Определите значение второго по величине элемента в этой последовательности. |
Гарантируется, что в последовательности есть хотя бы два элемента. |
«»» |
f_max = int ( input ()) |
s_max = int ( input ()) |
if f_max < s_max : |
f_max , s_max = s_max , f_max |
el = int ( input ()) |
while el != 0 : |
if el > f_max : |
s_max , f_max = f_max , el |
elif el > s_max : |
s_max = el |
el = int ( input ()) |
print ( s_max ) |
# —————————————————————— |
# task14———————————————————— |
«»» |
Последовательность состоит из натуральных чисел и завершается числом 0. |
Определите, сколько элементов этой последовательности равны ее наибольшему элементу. |
«»» |
max = 0 |
i_max = 0 |
el = — 1 |
while el != 0 : |
el = int ( input ()) |
if el > max : |
max , i_max = el , 1 |
elif el == max : |
i_max += 1 |
print ( i_max ) |
# —————————————————————— |
# task15———————————————————— |
«»» |
Последовательность Фибоначчи определяется так: |
φ0 = 0, φ1 = 1, φn = φn−1 + φn−2. |
По данному числу n определите n-е число Фибоначчи φn. |
Эту задачу можно решать и циклом for. |
«»» |
n = int ( input ()) |
if n == 0 : |
print ( 0 ) |
else : |
a , b = 0 , 1 |
for i in range ( 2 , n + 1 ): |
a , b = b , a + b |
print ( b ) |
# —————————————————————— |
# task16———————————————————— |
«»» |
Дано натуральное число A. Определите, каким по счету числом Фибоначчи оно является, |
то есть выведите такое число n, что φn = A. Если А не является числом Фибоначчи, выведите число -1. |
«»» |
a = int ( input ()) |
if a == 0 : |
print ( 0 ) |
else : |
prev , next = 0 , 1 |
n = 1 |
while next |
if next == a : |
print ( n ) |
break |
prev , next = next , prev + next |
n += 1 |
else : |
print ( — 1 ) |
# —————————————————————— |
# task17———————————————————— |
«»» |
Дана последовательность натуральных чисел, завершающаяся числом 0. |
Определите, какое наибольшее число подряд идущих элементов этой последовательности равны друг другу. |
«»» |
result = 1 |
seq = 0 |
prev = 0 |
cur_seq = 0 |
number = int ( input ()) |
while number > 0 : |
if prev == number : |
cur_seq += 1 |
else : |
cur_seq = 1 |
if cur_seq != 1 and cur_seq > result : |
result = cur_seq |
prev = number |
number = int ( input ()) |
print ( result ) |
# —————————————————————— |
# task18———————————————————— |
«»» |
Определите стандартное отклонение для данной последовательности натуральных чисел, завершающейся числом 0. |
«»» |
sum_num = 0 |
sum_power = 0 |
n = — 1 |
number = 1 |
while number != 0 : |
number = int ( input ()) |
sum_num += number |
sum_power += number ** 2 |
n += 1 |
result = (( sum_power — sum_num ** 2 / n ) / ( n — 1 )) ** 0.5 |
print ( result ) |
# —————————————————————— |
- Copy lines
- Copy permalink
- View git blame
- Reference in new issue
Источник: github.com