Каким бы длинным решение не казалось - это не так, оно очень короткое, просто очень подробно расписано во всех деталях. Итак, что нам известно:
Команда 1: +1Команда 2: *2Начальное: 2Конечное: 34Проходит через: 10Не проходит через: 28Траектория вычислений должна содержать число 10. Узнаем сколько таких есть различных путей:
2 +1 +1 +1 +1 +1 +1 +1 +1 = 102 *2 +1 +1 +1 +1 +1 +1 = 10(2 +1) *2 +1 +1 +1 +1 = 10(2 +1 +1) *2 +1 +1 = 10(2 *2) *2 +1 +1 = 10(2 +1 +1 +1) *2 = 10(2 *2 +1) *2 = 10Как мы видим - 7. Так как мы узнали все возможные пути до 10, узнаем теперь пути от 10 до 34. Чтобы они не проходили через число 28, нам нужно "перескочить" его, то есть какое-то число, меньшее 28, мы должны умножить на 2 и получить какое-то число, большее 28. Получаем такое неравенство: 10≤x<28 и 28<2x≤34
(10≤x<28 и 28<2x≤34) => (10≤x<28 и 14<x≤17) => (14<x≤17).
Подыщем такие значения:
10 +1 +1 +1 +1 +1 = 1510 +1 +1 +1 +1 +1 +1 = 1610 +1 +1 +1 +1 +1 +1 +1 = 17Как мы видим - их 3. Дальше рассмотрим каждый:
15 *2 +1 +1 +1 +1 = 3416 *2 +1 +1 = 3417 * 2 = 34Выходит для каждого только 1 вариант ("15+1", "15+1+1", "16+1" будет иметь такой же путь, как и просто 16 и 17, поэтому их не рассматриваем).
Получается 7 путей от 2 до 10 и 3 пути от 10 до 34. Итого: 7*3 = 21.
Во-первых в начале НЕ сin << sys, а сin >> s;
Во-вторых ты объявил/а все переменные в первом ифе, а значит в других функциях они уже не видны, поэтому стоит их объявить глобально
В-третьих переменная g не используется, поэтому можно ее и не объявлять
Вот код:
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int sys;
float a, b, c, d, e, sum, mid, pi=3.14, r;
cout << "if you would midle write-1, if place of circle-2" << endl;
cin >> sys;
if(sys == 1) {
cout << "input first midle" << endl;
cin >> a;
cout << "inpur second midle" << endl;
cin >> b;
cout << "input third midle" << endl;
cin >> c;
cout << "input thord midle" << endl;
cin >> d;
cout << "input fived midle" << endl;
cin >> e;
sum = a + b + c + d + e;
mid = sum / 5;
cout << "your midle: ";
cout << mid;
}
else{
if(sys == 2) {
cout << "this is the circle area formula S=pi*r^2" << endl;
cout << "input radius(r)" << endl;
cin >> r;
cout << pi * r * r;
}
}
return 0;
}