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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.03.2013, 12:23   #1
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию Интересная задача

День Добрый

Встретилась более-менее интересная (для меня) задачка. Вот собственно и она : Возьмем и выпишем огроменное кол-во чисел в строку : 123456789101112131415161718192021 и т.д. Теперь возьмем и выведем s[n]. Вот и всё..


Кроме решение в лоб я ничего хорошего не вижу..

"В лоб" подразумевает следующее (не проверял) :
Код:
ReadLn (n);
k := 1;
s := '';

while Length(s) < n do begin
      Str (TempStr, k);
      s := s + TempStr;
      Inc (k);
      if Length(s) + k >= 255 then begin
            Delete (s, 1, 254);
            Dec (n, 254)
      end
end;
Но хочется красоты.. Не подскажете как можно решить задачу более красивым способом ? Заранее спасибо!

Последний раз редактировалось Poma][a; 29.03.2013 в 12:38.
Poma][a вне форума Ответить с цитированием
Старый 29.03.2013, 12:30   #2
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

лично я вообще ниче не понял, ибо туп сегодня до неприличия. Что есть s[n] и как она связана с предыдущей толпой цифирок?
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 29.03.2013, 12:33   #3
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Дается число N. Далее сидим и выписывает натуральные числа :
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 ..
Пробелы для наглядности.. Теперь уберем их
Код:
1234567891011121314..
Теперь берем и выводим N-ый символ этой последовательности.
Пример : N = 8
Символ : 8

N = 15
Символ : 2
Poma][a вне форума Ответить с цитированием
Старый 29.03.2013, 12:36   #4
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Мне кажется, задача состоит в следующем.
Берутся все натуральные числа и записываются слитно, так, что получается одна большая строка: 1234567891011121314151617181920....

На вход подаётся число n и эта огромная строка.
Нам необходимо, я так полагаю, удостовериться, что число n свалено в эту туеву хучу чисел.
Я прав?
Вадим Мошев вне форума Ответить с цитированием
Старый 29.03.2013, 12:37   #5
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
На вход подаётся число n и эта огромная строка.
Только N
Мы сами должны сгенерировать это строку и вывести её N-ый символ
Poma][a вне форума Ответить с цитированием
Старый 29.03.2013, 12:46   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Не понял чем задача интересна?
У тебя есть массив. Выводи нужный элемент из него...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.03.2013, 12:47   #7
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Для последовательного ряда и чисел до 99 включительно можно так:

Код:
if n<10 then writeln(n) 
else if (n>=10) and (n<100) then begin
  if odd(n) then writeln(n div 10)
  else writeLn(n mod 10 div 2);
end;
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 29.03.2013, 12:49   #8
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
У тебя есть массив. Выводи нужный элемент из него...
Для начала его(массив) нужно получить..

Но возможно есть более хитрый алгоритм..
Poma][a вне форума Ответить с цитированием
Старый 29.03.2013, 12:53   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Мдя... мне не понять...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.03.2013, 12:55   #10
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
Для последовательного ряда и чисел до 99 включительно можно так:
Супер!! 10 букоф
Poma][a вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Интересная задача makskovalko Помощь студентам 13 25.01.2013 11:29
интересная задача Erkesh Помощь студентам 1 03.11.2012 16:19
Интересная задача makskovalko Помощь студентам 6 12.08.2012 18:47
интересная задача Знаменок Паскаль, Turbo Pascal, PascalABC.NET 0 05.10.2010 13:26
Интересная задача! - DannerDOS.kz Паскаль, Turbo Pascal, PascalABC.NET 2 16.12.2008 14:04