Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.10.2010, 14:35   #1
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию Вращающееся число

Заступорила меня одна задачка, найденная в интернете.
Код:
Найти минимальное число, которое обладает следующими свойствами:
оканчивается на 5;
при умножении его на 5 образуется число, которое может быть получено из исходного переносом цифры 5, стоящей в конце, в начало этого числа.
Как только не пробовал, не получается.
Код:
var I:Integer;
begin
      X:=5;
      NX:=5;
      While X*5<>NX Do
      Begin
            TX:=X;
            N:=0;
            While X>0 Do
            Begin
                  X:=X div 10;
                  Inc(N);
            End;
            X:=TX;
            NX:=0;
            X:=X div 10;
            NX:=10;
            For I:=1 To N-1 Do
            NX:=NX*10;
            NX:=5*NX+X;
            X:=TX;
            X:=X+10;
      End;
Так не катит.
_-Re@l-_ вне форума Ответить с цитированием
Старый 17.10.2010, 14:44   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А оно существует это число хоть?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.10.2010, 14:45   #3
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Конечно. Вот только, видать, оно большое.
_-Re@l-_ вне форума Ответить с цитированием
Старый 17.10.2010, 14:50   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Прикольно бы на него посмотреть...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.10.2010, 15:29   #5
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,582
По умолчанию

Такого числа не существует
Arigato вне форума Ответить с цитированием
Старый 17.10.2010, 15:54   #6
Tronix
Форумчанин
 
Аватар для Tronix
 
Регистрация: 15.06.2010
Сообщений: 740
По умолчанию

Я тоже думаю, что такого числа не может быть. Возможно имелось ввиду в задаче вставить последнюю 5 перед числом, типа: 225, вставляем последнюю 5 вперед числа - получаем 5225 . Хотя тоже спорно.
Чтобы понять рекурсию, сперва нужно понять рекурсию.
Tronix вне форума Ответить с цитированием
Старый 17.10.2010, 15:57   #7
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Я всё-таки думаю, что оно есть
_-Re@l-_ вне форума Ответить с цитированием
Старый 17.10.2010, 16:15   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А де ты эту задачу выдрал то?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.10.2010, 16:17   #9
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Да вот тут:
ссылка
Там, в конце, номер 32.
_-Re@l-_ вне форума Ответить с цитированием
Старый 17.10.2010, 16:34   #10
Tronix
Форумчанин
 
Аватар для Tronix
 
Регистрация: 15.06.2010
Сообщений: 740
По умолчанию

Я с математикой вообще никак не дружу, но и так вижу, что числа при умножении растут экспонциально (или как там, короче быстро растут).
Но если прям так хочется убедится, то пожалуйста: можешь брутить пока комп не задымиться:
Код:
Uses SysUtils;
Var
      SNum : String;
      I : qword; //0..18446744073709551615
Begin
      i := 5;
      repeat
        Snum := '5'+IntToStr(i);  // SNum = 5+текущее число
	Snum[0] := Chr(Length(Snum)-1); // отрезаем пятерку в хвосте

        If SNum = IntToStr(i*5) then
           WriteLn('Holy shit! I Found it: ',i,' ',SNum);
        Inc(i,10);
      until i > 3689348814741910323; //18446744073709551615 div 5
      writeln('done');
      readln;
End.
Это для Free Pascal. Компилить с ключем совместимости с TP:
Цитата:
fpc proga.pas -Mtp
В приложении скомпиленный EXE если влом.
Вложения
Тип файла: rar proga.rar (27.7 Кб, 5 просмотров)
Чтобы понять рекурсию, сперва нужно понять рекурсию.
Tronix вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дано вещественное число X и целое число N (> 0). Вывести X – X3/3! + X5/5! – ... + (–1)NX2N+1/(2N+1)!? Ахилес Помощь студентам 2 20.05.2010 20:34
Написать программу, которая за меньшее число ходов отгадывает загаданное число gomz007 Помощь студентам 16 08.11.2009 12:57
Вывести число, предшествующее первому отрицательному и число, следующее за последним отрицательным Rid Паскаль, Turbo Pascal, PascalABC.NET 4 22.12.2008 16:50
Найти и вывести все слова,у котоpых число гласных букв пpевышает число согласных. Briz Помощь студентам 2 11.05.2008 00:56
Ввести число N и определить делится ли оно без остатка на число M (VBA) Ivanich Microsoft Office Excel 7 24.04.2008 19:43