![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| admin82 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 22.8.2006 Репутация: нет Всего: 1 |
Снова добрый!
Надо найти все числа-палиндромы меньшие N, которые при возведении в квадрат тоже дают палиндром. Вот моя наработка (функцию pal подсмотрел)
По-моему, слишком нерационально. И еще, может, дадите ссылочку на вопросы преобразования чисел в строку и наоборот. VS 2005 сильно ругается на atoi и itoa. А что у него есть взамен? |
|||
|
||||
| Sceptik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 29.8.2006 Где: Екатеринбург Репутация: нет Всего: нет |
admin82, хм.. зачем тебе массивы по 100 байт. тебе с лихвой хватит 11.
для возведение в ЦЕЛУЮ степень никогда не используй pow. К тому же тебе надо возводить в квадрат. Проще и быстрее просто l * l. Это сообщение отредактировал(а) Sceptik - 30.8.2006, 09:26 |
|||
|
||||
| Mayk |
|
|||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 45 Всего: 134 |
Вопрос на засыпку - 10 это палиндром?
ЗЫ. 10 * 10 = 010 * 010 = 00100 Это сообщение отредактировал(а) Mayk - 30.8.2006, 09:29 -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
|||
|
||||
| admin82 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 22.8.2006 Репутация: нет Всего: 1 |
По поводу степени - исправил, спасибо. А для степени, скажем, 7, что использовать? Или если степень известна только по ходу выполнения программы?
А вопрос про десятку не понятен. Кто сказал, что натуральные числа мы можем записывать в такой форме для исследования на палиндромность. 10 не будет являться палиндромом, и программа так и решает. |
|||
|
||||
| Sceptik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 29.8.2006 Где: Екатеринбург Репутация: нет Всего: нет |
admin82,
|
|||
|
||||
| admin82 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 22.8.2006 Репутация: нет Всего: 1 |
Sceptik,
с таким текстом не разберусь. Может, получиться немного (а вернее, много) комментариев?
Вместо std::string можно включить include "string.h"? boost::lexical_cast<std::string>(number); -- поясни, пжл. if (std::string(sNumber.begin(), sNumber.begin() + half) != std::string(sNumber.begin() + half, sNumber.end())) то же тамое. У меня в багаже столько информации нету. |
|||
|
||||
| likehood |
|
|||
|
666 ![]() ![]() Профиль Группа: Участник Сообщений: 536 Регистрация: 21.12.2005 Репутация: 8 Всего: 24 |
А возводить в целую степень можно просто умножая в цикле число само на себя. |
|||
|
||||
| admin82 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 22.8.2006 Репутация: нет Всего: 1 |
Теперь есть такой текст:
Но нельзя ли все же не перебирать все числа до N? И остается вопрос к Sceptik. Интересно, что он там такое использовал. Добавлено @ 10:19 Попробуйте запустить. Введите n = 9999999. Перед выводом последних трех чисел есть СУЩЕСТВЕННАЯ задержка. |
|||
|
||||
| likehood |
|
|||
|
666 ![]() ![]() Профиль Группа: Участник Сообщений: 536 Регистрация: 21.12.2005 Репутация: 8 Всего: 24 |
||||
|
||||
| likehood |
|
|||
|
666 ![]() ![]() Профиль Группа: Участник Сообщений: 536 Регистрация: 21.12.2005 Репутация: 8 Всего: 24 |
||||
|
||||
| MAKCim |
|
||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
возможен выход за разрядную сетку -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||
|
|||||
| admin82 |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 22.8.2006 Репутация: нет Всего: 1 |
Так разве это мало?????
Как с этим бороться
Поправил, на всякий |
||||||
|
|||||||
| Sceptik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 29.8.2006 Где: Екатеринбург Репутация: нет Всего: нет |
Спасибо за внимание. P.S. boost::lexical_cast впринципе можно заменить на манипуляцию с snprintf |
|||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
Sceptik,
Палиндром -это не когда левая часть равна правой, а когда запись числа прочитанное, слева на право дает число равное числу, полученному при чтении справа налево 121 - это тоже палиндром. Формально все числа от 0 до 9 - тоже палиндромы Тогда уж
-------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| Sceptik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 29.8.2006 Где: Екатеринбург Репутация: нет Всего: нет |
Vyacheslav, да да.. я немного ошибся.
Это сообщение отредактировал(а) Sceptik - 30.8.2006, 12:03 |
|||
|
||||
| admin82 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 22.8.2006 Репутация: нет Всего: 1 |
Всем спасибо. Остановился на варианте
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |