РЕКУРСИЯ Дана последовательность натуральных чисел (одно число в строке), завершающаяся двумя числами 0 подряд. Определите, сколько раз в этой последовательности встречается число 1. Числа, идущие после трех нулей, необходимо игнорировать.
В этой задаче нельзя использовать глобальные переменные и параметры, передаваемые в функцию. Функция получает данные, считывая их с клавиатуры, а не получая их в виде параметров.
Ввод Вывод
1 2
0
0
0
1
1
1. Нам нужно написать функцию, которая будет решать задачу. Давайте назовем ее "count_ones".
2. В начале функции создадим переменную "count", в которой будем хранить количество встреченных единиц. Изначально установим ее значение равным нулю.
3. Затем воспользуемся циклом while, чтобы считывать числа с клавиатуры до тех пор, пока не встретим два нуля подряд. Внутри цикла будем проверять каждое считанное число.
4. Если считанное число равно 1, увеличиваем значение переменной "count" на единицу.
5. Если считанное число равно нулю, то нужно проверить следующее за ним число. Если оно также равно нулю, то выходим из цикла.
6. После завершения цикла, возвращаем значение переменной "count" в качестве результата работы функции.
Теперь реализуем все это в коде:
```python
def count_ones():
count = 0
while True:
num = int(input()) # считываем число с клавиатуры
if num == 1:
count += 1
elif num == 0:
num2 = int(input()) # считываем следующее число
if num2 == 0:
break
return count
```
Теперь мы можем вызвать эту функцию и передать ей входные данные:
```python
result = count_ones()
print(result)
```
При вводе последовательности чисел, как указано в задаче:
```
1
2
0
0
0
1
1
```
Мы получаем ответ:
```
3
```
Таким образом, в данной последовательности число 1 встречается три раза.