Предполагается, что ответ будет написан на языке Кумир.
использовать Робот
алг
нач
• нц пока справа стена
• • закрасить
• • вверх
• кц
• нц пока снизу свободно
• • закрасить
• • вправо
• кц
• нц пока снизу стена
• • закрасить
• • вправо
• кц
кон
Объяснение:
Используем исполнитель Робот в среде Кумир. Вставка -> использовать Робот
Создаём стены и меняем положение Робота через Робот -> Редактировать обстановку
Закончив с обстановкой, начинаем писать код.
нц = начало цикла, кц = конец цикла
• нц пока справа стена
• • закрасить
• • вверх
• кц
Этот цикл выполняет действия внутри себя только тогда, когда справа от робота находится стена.
• нц пока снизу свободно
• • закрасить
• • вправо
• кц
Этот цикл выполняет действия внутри себя только тогда, когда снизу робота нет стены.
• нц пока снизу стена
• • закрасить
• • вправо
• кц
Этот цикл выполняет действия внутри себя только тогда, когда снизу робота стена.
На выходе получаем универсальный алгоритм, который будет работать с абсолютно любой длиной стены.
#include <iostream>
#include <cmath>
#include <algorithm>
#pragma GCC optimize("Ofast")
#define ll long long
#define ld long double
using namespace std;
signed main() {
ll n = 8;
ll a[n];
ll sum = 0;
for(ll i = 0; i < n; i++){
cin >> a[i];
if(a[i] % 6 == 0 && a[i] % 4 == 0)
sum += a[i];
}
cout << sum << "\n";
n = 12;
sum = 0;
ll b[n];
for(ll i = 0; i < n; i++){
cin >> b[i];
if(b[i] % 5 == 0)
sum++;
}
cout << sum;
}
вывод: 118
Объяснение:
исходные данные:
a=20
b=98
Условие:
if a<b Если а<б, то выполняется:
print(a+b) вывод значения выражения (а+б)
else: Иначе (если а НЕ <б, то есть а≥б), то выполняется:
print(a*b) вывод значения выражения (а*б)
Так как в данном примере а=20, б=98 → а<б, то выполнится действие блока if a<b → вывод а+б=20+98=118, то есть вывод: 118
так как выполнилось действие блока if, то действие блока else выполняться не будет