1) Независимо от условия будет выполнен оператор присваивания. a:=b 2) Условие ложное, значит будет выполнен оператор после else write('b') 3) Условие истинное, значит будет выполнен оператор после then write('a') 4) Функции операторов присваивания одинаковы, значит не зависят от условия (a + b - 14 = b - 14 + a) a := a + b - 14 5) Оператор a := a практически ничего не изменяет, значит можно избавится от него if a<b then a:=b 6) То же самое, что и в пункте 5, только нужно поменять истину на ложь if not(a>b) then a:=b 7) Остаток деления на 2 не может быть равен трем, значит условие всегда ложно. Else нет, значит условный оператор можно смело откинуть 8) Остаток от деления на может быть равен или 0 или 1, значит в любом случае условие истинно. Первый условный оператор можно смело откинуть, но вложеннный остается! if a<0 then a:=-a 9) Если a отрицательное, тогда b = a, то есть тоже отрицательно. Если a неотрицательное, тогда b = -a, то есть b отрицательное. Можно записать как модуль числа a, умноженный на -1 b := -abs(a)
Прежде всего нужно определить остаток от деления исходно числа на 3. для этого, т.к. у вас будет строка вам нужно посчитать сумму отдельных символов строки и взять остаток суммы от деления на 3. Если этот остаток равен : А) 0, то нужно увеличить любую цифру числа на 3 или 6 или 9 и нужно изменить 1 цифру так, что бы остаток от деления на 3 не изменился. Б) 1, то одну цифру числа нужно увеличить на 2 или 5 В) 3, то на 1 или 4 или 7 Для того чтобы число было макс. большим нужно брать максимально левую цифру для увеличения. Ну, как-то так
Решение проблемы на с++
Объяснение:
#include <iostream>
#include <stdbool.h>
using namespace std;
bool triangle(int a, int b, int c){
if((a + b > c) && (b + c > a) && (a + c > b)){
return true;
}
else{
return false;
}
}
int main(){
int a, b, c, d;
cin >> a >> b >> c >> d;
if(triangle(a, b, c) || triangle(a, b, d) || triangle(a, c, d) || triangle(b, c, d)){
cout << "YES\n";
}
else{
cout << "NO\n";
}
return 0;
}