#include <iostream>
#include <string>
bool is_palindrome(const std::string& s) {
std::string r(s);
std::reverse(r.begin(), r.end());
return s == r;
}
int main() {
std::string s1,s2;
setlocale(LC_ALL, "Russian");
std::cout << "Введите число 1: ";
std::getline(std::cin, s1);
std::cout << "Введите число 2: ";
std::getline(std::cin, s2);
if (is_palindrome(s1)|| is_palindrome(s2))
std::cout << "Одно из введенных чисел является палиндромом " << std::endl;
else
std::cout << "Ни одно из введенных чисел не является палиндромом " << std::endl;
return 0;
}
Изначально N была равна 5, каждый повтор цикла к N прибавляется 6.
Определим количество повторов цикла (сколько раз к N должна быть прибавлена 6 для получения числа 89):
5+6*x = 89
6*x = 84
x = 14
То есть цикл должен совершить 14 повторов.
Каждый раз к S прибавляется D (которую нужно найти), изначально S = 83. Нам удобнее прибавлять D к нулю, а не к 83, поэтому вычтем из 1200 83 и приравняем S к нулю.
Условие в цикле теперь будет выглядеть как S <= 1117
Нам нужно наибольшее S, при котором цикл совершает 14 повторов. Чем больше значение D, тем меньше повторов совершит цикл. Найдем наименьшее целое D, при котором цикл совершает 13 повторов, и возьмем предыдущее целое, это и будет наибольшее D, при котором цикл совершит 14 повторов.
Цикл завершается после того, как условие перестанет выполняться, то есть при s > 1117. Составим неравенство:
13*d > 1117
d > 85,92
То есть наименьшее D, при котором цикл совершит 13 повторов - 86, значит наибольшее D, при котором цикл совершит 14 повторов - 85.
ответ 85