Автомат получает на вход четырёхзначное натуральное число и строит новое число по следующему алгоритму:
1. вычисляются суммы первой и второй, второй и третьей и третьей и четвёртой цифр;
2. из полученных сумм отбрасывается наименьшая;
3. остальные суммы записываются в порядке невозрастания.
пример. исходное число: 1284. суммы: 1 + 2 = 3; 2 + 8 = 10; 8 + 4 = 12. отбрасывается наименьшая сумма 3. результат: 1210. укажите наименьшее число, при вводе которых автомат выдаёт значение 126.
Хоть где-то робототехника мне пригодилась.
Объяснение:
Смотри дружище. Речь идет не просто о битве — это робо-сумо, которое ценят за особые качества: за элегантность, простоту и возможность проявить интеллект в стратегии. Соревнование проходит на круглом ринге диаметром всего 1,5 м, по периметру которого нарисована белая линия шириной 5 см. Робот, пересекший эту границу, считается проигравшим. И в этой кажущейся простоте кроется бездна возможностей.
Их история начинается в Японий. Где же ещё. Скорее всего они создавались для развлечение, но это переросло во что-то больше.
Так же есть соревнования как: Кегель-ринг, Кегель-ринг квадро, Биатлон и т.д.
P.S. надеюсь я тебе )
Чтобы решить эту задачу, воспользуемся методом программирования:
1) напишем функцию, которая получает число в качестве аргумента и моделируя процесс преобразивания из условия возвращает результат:
int f(int n){
int d[4];
for(int i = 0; i < 4; i++){
d[3 - i] = n % 10;
n /= 10;
}
int u = d[0] + d[3], v = d[1] + d[2];
string res;
u < v ? res += to_string(u) + to_string(v) : res += to_string(v) + to_string(u);
return stoi(res);
}
2) так как нам нужно найти наибольшее четырехзначаное число, дающее результат 815, то запускаем цикл, идущий от самого большого четырехзначного числа(9999) до самого маленького(1000), и как только нам встретится число, дающее в результате нужное число(815), выведем его в консоль, и закончим работу программы, то, что выведет программа и будет ответом:
полный код(результат работы на фото) :
#include <iostream>
using namespace std;
int f(int n){
int d[4];
for(int i = 0; i < 4; i++){
d[3 - i] = n % 10;
n /= 10;
}
int u = d[0] + d[3], v = d[1] + d[2];
string res;
u < v ? res += to_string(u) + to_string(v) : res += to_string(v) + to_string(u);
return stoi(res);
}
int main(){
for(int i = 9999; i >= 1000; i--){
if(f(i) == 815){
cout << i;
return 0;
}
}
}
ответ: 9806