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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.02.2008, 13:21   #1
pelsh
Пользователь
 
Регистрация: 20.12.2007
Сообщений: 12
Сообщение числовая последовательность

помогите!!!
надо решить задачу а я не знаю как!!!
друзья тоже...
Вложения
Тип файла: doc Числовая последовательность.doc (32.0 Кб, 47 просмотров)
pelsh вне форума Ответить с цитированием
Старый 15.02.2008, 03:20   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

о.. Открыл задание! (просто сохраняться doc на диск не хотел, а открыть в Word прямо с IE получилось...)

задание (суть в следущем):
последовательностью чисел a1, a2, …, an, …, которая определяется следующим образом: следующим образом: a1 = 0 и каждое последующее число ai (1 < i ≤ n) определяется как наименьшее большее натуральное число, десятичная запись которого не содержит цифр, представленных в десятичной записи ai-1.

Так. Теперь вопрос. А что Вам и Вашим друзьям конкретно не понятно???
первое число последовательности (n=1)
a1 = 0
второе: (n=2)
a2 = 1
третье: (n=3)
a3 = 2
и далее:
3 4 5 6 7 8 9 10 22 30 41 50 61 70 81 90 111 200 311 400 511 600 711 800 911 2000 3111 4000
и т.д.

для решения задачи будет полезно написать функцию, в которую передаются два числа и функция вернёт true/false по результам проверки входят ли цифры первого числа во второе:
ну, где то так (код пишу прямо здесь - НЕ ПРОВЕРЯЯ - так что испрвлять баги - Вам ;-))
и ещё - оптимизации по скорости НИКАКОЙ!...):
Код:
function IsDigitMatch(APred, ATest : integer) : boolean;
var s1,s2 : string;
  i : integer
begin
  Str(APred:1,s1);
  Str(ATest:1,s2);
  IsDigitMatch := true;
  for i:=1 to Length(s1) do
    if Pos(s1[i],s2)>0 then Exit;
  IsDigitMatch := false;
end;
ну и дальше алгоритм получения следующего числа из последовательности (пусть предыдущее в A):
Код:
  i := A;
  while IsDigitMatch(A,i) do Inc(i);
всё!!!

или в чём проблема то????
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Последовательность чисел с степенью до N SEREG@ Помощь студентам 4 15.06.2008 22:41
НАпечатать наибольшую последовательность состоящую gred Помощь студентам 6 23.03.2008 16:12
перевод в последовательность Janette Паскаль, Turbo Pascal, PascalABC.NET 2 23.03.2008 14:11
числовая последовательность и массив дангер Паскаль, Turbo Pascal, PascalABC.NET 6 28.01.2008 20:38
Paskal. Числовая последовательность. Flash_ Помощь студентам 10 18.01.2007 16:52