ответ: 22 Вариант на C++, но программа долго выполняется; как оптимизировать, я пока не знаю.
#include <iostream> #include <sstream> #include <string> int main() { int k = 0; //счетчик 1016палиндромов
for (int i = 16; i <= 10000000; i++) { int temp = i;
std::stringstream ss; //перевод 10чного числа в 16чную строку ss << std::hex << temp; std::string temp16(ss.str());
//проверяем, является ли 16чное число палиндромом bool t16 = true; int left_index = 0; int right_index = temp16.size() - 1; while (left_index < right_index) if (temp16[left_index++] != temp16[right_index--]) t16 = false;
if (t16) { bool t10 = true; std::ostringstream ost; //перевод 10чного числа в строку ost << temp; std::string temp10 = ost.str();
//проверяем, является ли 10чное число палиндромом int left_index = 0; int right_index = temp10.size() - 1; while (left_index < right_index) if (temp10[left_index++] != temp10[right_index--]) t10 = false;
if (t10) k = k + 1; } }
std::cout << "Number of 1016-palindroms: " << k << std::endl; return 0; }
смирнов1127
13.02.2021
Жили – были в лесу: Заяц, Лиса, Волк и Медведь. Как-то раз, весной, после зимней спячки встал медведь и говорит: «Я опять выспаться не успел». Лесные жители давай над ним смеяться. Медведю это не понравилось, и он ушел. Стал он придумывать, как бы им отомстить. Ходил он, ходил, думал, думал и придумал. Зайца он решил испугать, когда он в школу пойдёт, чтобы забыл он туда дорогу. У Лисы своровал деньги, чтобы она не ходила по магазинам, не модничала, и не зазнавалось. А Волка решил подкараулить, поймать и посадить в клетку.
некоторое время. И вот идёт Заяц, а навстречу ему Лиса. Спрашивает Лиса у него: «Ты что такой грустный». А он ей отвечает: «Да меня Медведь пугает, и теперь я не могу в школу ходить», А Лиса говорит: «И у меня неприятность». Заяц спрашивает: «Что случилась?». А она ему: «У меня деньги пропали». Заяц говорит Лисе: «Может это Медведь украл?». Они подумали, почему не видать Волка. Лиса: «Может он заболел». Заяц: «Ну, пойдём, сходим к нему, посмотрим, что он делает». И вот они пришли, стучат в дверь, стучат, а им никто не открывает. Тогда они стали переживать и пошли на поиски. Но Волка было не слыхать.
Решили они сходить к Мудрой Сове. Всё ей рассказали, какие у них неприятности – что натворил Медведь. Мудрая Сова решила вызвать Медведя на лесной совет и убедить его, что он не прав в своих поступка. Вот вызвали Медведя на лесной совет. И стали убеждать его в том, что у каждого есть свои права. Каждый имеет право на образование, поэтому Заяц должен учиться. Каждый имеет право на свободное передвижение, на пользование денежными единицами, а также на право свободного выбора и на личную собственность. Каждый имеет право на свободу, на личную неприкосновенность, а самое главное право на жизнь. Медведю рассказали много всяких прав и убедили его в том, что никто не должен нарушать эти права. Медведь подумал и решил, что он поступил не правильно и не красиво. Решил он исправить свои ошибки: пришёл к Лисе и отдал деньги, Зайца больше не стал пугать, Волка выпустил на волю. Лесные жители извинились перед Медведем за то, что они над ним смеялись. Медведь тоже извинился за свои поступки.
Стали они жить дружно и не ссориться. Потому что каждый знал свои права и их не нарушал. Так если стал мир и покой в лесу, то, как нам, людям, не знать свои права и обязанности, и их не выполнять? Стыдно!
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Задана матрица размером nxm определите количество различных значений матриц т. е повторяющиеся элименты считать один раз решить на builder
Вариант на C++, но программа долго выполняется; как оптимизировать, я пока не знаю.
#include <iostream>
#include <sstream>
#include <string>
int main()
{
int k = 0; //счетчик 1016палиндромов
for (int i = 16; i <= 10000000; i++)
{
int temp = i;
std::stringstream ss; //перевод 10чного числа в 16чную строку
ss << std::hex << temp;
std::string temp16(ss.str());
//проверяем, является ли 16чное число палиндромом
bool t16 = true;
int left_index = 0;
int right_index = temp16.size() - 1;
while (left_index < right_index)
if (temp16[left_index++] != temp16[right_index--])
t16 = false;
if (t16)
{
bool t10 = true;
std::ostringstream ost; //перевод 10чного числа в строку
ost << temp;
std::string temp10 = ost.str();
//проверяем, является ли 10чное число палиндромом
int left_index = 0;
int right_index = temp10.size() - 1;
while (left_index < right_index)
if (temp10[left_index++] != temp10[right_index--])
t10 = false;
if (t10)
k = k + 1;
}
}
std::cout << "Number of 1016-palindroms: " << k << std::endl;
return 0;
}