Исполнитель "вычислитель" умеет выполнять только две команды : умножать на два и прибавлять один . придумайте для него наиболее короткий план получения из 0 числа 50
Такие задачи лучше решать с конца: 50/2=25 25-1=24 24/2=12 12/2=6 6/2=3 3-1=2 2/2=1 1-1=0 Теперь начинаем собирать алгоритм с конца, меняя операцию на противополжную (деление на умножение, вычитание на сложение): Пусть команда "умножать на 2" равна 1 а команда "прибавить 1" равна 2 тогда получим решение в таком виде: 21211121
Fedoseeva
03.09.2021
#include <iostream> #include <cstdio> #include <cmath> using namespace std; int main() { int a, b, c; cin>>a>>b>>c; if ((a + b < c) || (a + c < b) || (b + c < a)) { cout<<"Не треугольник"; return 0; } if ((a * a + b * b == c * c) || (a * a + c * c == b * b)|| (c * c + b * b == a * a)) { cout<<"Прямоугольный"; return 0; } if ((a * a + b * b > c * c) || (a * a + c * c > b * b)|| (c * c + b * b > a * a)) cout<<"Остроугольный"; else cout<<"Тупоугольный"; }
Busyashaa
03.09.2021
Var x:real; n:integer; begin write('x = '); readln(x); writeln('Введите номер задачи:'); writeln('1-вычисление квадратного корня;'); writeln('2-возведение в квадрат;'); writeln('3-вычисление синуса;'); writeln('4-вычисление косинуса;'); readln(n); case n of 1: writeln(sqrt(x):6:4); 2: writeln(x*x:6:4); 3: writeln(sin(x):6:4); 4: writeln(cos(x):6:4); else writeln('Ошибка ввода'); end; end.
Пример: x = 2.1 Введите номер задачи: 1-вычисление квадратного корня; 2-возведение в квадрат; 3-вычисление синуса; 4-вычисление косинуса; 3 0.8632
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Исполнитель "вычислитель" умеет выполнять только две команды : умножать на два и прибавлять один . придумайте для него наиболее короткий план получения из 0 числа 50
50/2=25
25-1=24
24/2=12
12/2=6
6/2=3
3-1=2
2/2=1
1-1=0
Теперь начинаем собирать алгоритм с конца, меняя операцию на противополжную (деление на умножение, вычитание на сложение):
Пусть команда "умножать на 2" равна 1
а команда "прибавить 1" равна 2
тогда получим решение в таком виде: 21211121