РЕШИТЬ, РЕАШТЬ ЧЕРЕЗ while или же repeat Задача № 1.
Начав тренировки, лыжник в первый день пробегал 10 км. Каждый следующий день он увеличивал длину пробега на 10% от предыдущего дня. Определить в какой день он пробежит больше 20 км, в какой день суммарный пробег за все дни превысит 100 км.
Задача № 2.
Подсчитать сумму всех положительных чисел, введенных с клавиатуры и произведение всех отрицательных, до тех пор пока не будет введен 0 с клавиатуры.
Задача № 3.
На ферме содержат куриц и кроликов. У всего поголовья 128 лап. Вывести на экран все возможные варианты количества куриц и кроликов на ферме.
#include <iostream>
using namespace std;
int main()
{
int i,n,n2=0,n3,digit;
cin >> n; //Вводим число. Может быть отрицательным.
n3 = abs(n); //Для удаления цифр нужно положительное число
i = 1; //Переменная для количества десятков.
while(n3>0) { //Условия для выполнения цикла
digit = n3 % 10; //Получаем последнюю цифру
n3 = n3 / 10; //Уменьшаем число
if(digit!=3 && digit!=6){ //Проверка цифры
n2 = n2 + digit * i; //Создаем число умножая на десятки
i = i * 10; //Добавляем десятки
}
}
cout << ((n<0)?-n2:n2); //Вывод результата с добавление знака
}
Объяснение:
Есть цикл While
Код для питона:
def solve(a):
def count(r,c):
return a[r][c] if r >= 0 and r < len(a) and c >= 0 and c < len(a[r]) and a[r][c] != None else 0
a[0][0] = 1
for step in range(1, len(a) + len(a[0]) - 1):
row, col = (0, step) if step < len(a[0]) else (step - len(a[0]) + 1, len(a[0]) - 1)
while col >= 0 and row < len(a):
if a[row][col] != None:
a[row][col] = count(row-1, col) + count(row, col-1)
row, col = row+1, col-1
return a[-1][-1]
Поле задаём в виде списка списков:
field = [
[0,0,0,0,0,None,None,None],
[0,0,None,0,0,0,0,None],
[0,0,0,0,0,0,0,0],
[0,None,0,0,0,0,0,0],
[0,0,0,0,None,0,0,0],
[0,0,0,0,0,0,0,0],
[None,None,0,0,0,None,0,0],
[None,None,0,0,0,0,0,0]
]
Объяснение:
Если нужно просто решение, то я приложил картинку