| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [C] Задача на нахождение числа |
| Автор: anad 22.11.2006, 21:38 |
| Некоторое число оканчивается на 2. Если же эту его последнюю цифру переставить на первое место, то число удвоится. Найти это число. |
| Автор: Solomon 22.11.2006, 22:23 |
| А такое число вообще сущетвует? А то я что то немогу такого числа представить... |
| Автор: Kuvaldis 22.11.2006, 22:40 |
| anad, имхо, должен быть указан диапазон, в котором нужно искать... А вдруг таких чисел бесконечное множество??? |
| Автор: Solomon 22.11.2006, 22:45 |
| да вряли их бесконечное множество. Я например немогу и одного придумать |
| Автор: anad 23.11.2006, 00:11 |
| Не знаю, препод такую задачу дал. Ерунда какая-то. |
| Автор: AlexST 23.11.2006, 00:12 |
anad, такого числа нет. Наиболее близкое число 1052. Зависимость на графике. ![]() График не полностью представлен, дальше идет тоже самое с возрастающим (мягко говоря |
| Автор: Rockie 23.11.2006, 00:35 | ||
anad, не буду ничего добавлять к сказанному AlexST. Впрочем, отсутствие решения в определенном интервале это тоже ответ
|
| Автор: AlexST 23.11.2006, 00:53 |
| Сам себя одурачил. 105263157894736842! Сказал же что мягко говоря крутой диапазон и не стал проверять дальше. Все пользуемся большим числом разрядов. Да...., тому кто это придумал нечего было делать явно. |
| Автор: AlexST 23.11.2006, 13:24 |
| Задачка чисто на логику, а я стал прогу делать сходу. Самое простое решение: "разматываем" большее число исходя из двойки в конце меньшего (у большего значит 4 в конце, а у меньшего она предпоследняя; отсюда 8 предпоследняя у большего и т.д.). Поскольку зависимость периодическая, то таких чисел бесконечно много к тому же (видно из графика). |
| Автор: Exception 23.11.2006, 19:38 |
| Помню, такая задачка была в "занимательной математике" Перельмана |
| Автор: anad 25.11.2006, 01:43 |
| Ну так как найти это число? 105263157894736842 |
| Автор: Aloha 25.11.2006, 04:00 | ||||||
| anad Числа, которые будут удовлетворять условию задачи – периодические. Первое из них уже привел AlexST:
Следующие несколько чисел выглядят так:
и т.д. Вот код на VB, генерящий периодическую часть числа (его можно опробовать в любом MS Office’ном приложении):
|
| Автор: Dov 25.11.2006, 15:09 | ||
|
| Автор: Dov 25.11.2006, 16:33 | ||
Или даже так
|
| Автор: AlexST 25.11.2006, 17:55 |
| Dov, Aloha вы б оставили комменты в прогах хоть. Не знаю как до anad, а до меня туго доходит. |
| Автор: Dov 25.11.2006, 18:16 |
| AlexST, а что там комментировать, там всего один маленький цикл, который выводит каждый раз одну цифру. Если посмотреть на это число 105263157894736842 внимательно, то мы увидим, что оно представляет собой сумму степеней двойки, умноженную на 10 в степени n - 1. Например, последние три цифры этого числа(842) можно записать так: 2 + 2*2*10+2*2*2*100, ну и так далее, пока не получим нужное число. |
| Автор: Dov 25.11.2006, 20:44 | ||
Может быть так понятнее будет
Берём число 2 и начинаем делить его на 2, прибавляя к результату остаток от деления, умноженный на 10, пока сам результат не будет равен 2. Последовательность цифр между этими двумя двойками(включая последнюю) и есть искомое число. |
| Автор: AlexST 22.12.2006, 17:02 |
| Dov, ты просто привел два разных способа, а я думал, что это один и тот же. Поэтому не понял. |
| Автор: Dov 22.12.2006, 17:27 |
AlexST, способ один, реализация разная. |