Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Задачка по программированию есть. 
:(
    Опции темы
Girder
Дата 15.10.2004, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй 2
***


Профиль
Группа: Участник Клуба
Сообщений: 1993
Регистрация: 12.5.2004

Репутация: 31
Всего: 155



Pakshin A. S. помотри код, который я привел выше... даже для очень большого числа - количество вычислений мало и без всяких там IntToStr smile.gif

Это сообщение отредактировал(а) Girder - 15.10.2004, 20:26


--------------------
Как слышим, так и пишим.
Истина где-то там...
PM   Вверх
Pakshin A. S.
Дата 15.10.2004, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



Буду разбираться, спасибо!
PM   Вверх
p0s0l
Дата 15.10.2004, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



Вариант 1 Pakshin'а - работает неправильно, когда число последовательности доходит до 99 (k=190..192), дальше идёт 10, потом 11 и т.д.
Вариант 2 Пакшина уже на 10 выдаёт 9

Вариант X77 работает правильно, но он неоптимален, из-за того, что всё опирается на строки, и если k=10000000, то в итоге сгенерится строка такой длины...

Варианты 1 и 2 Максима при K=10 выдают 0, хотя если смотреть дальше, то второй вариант почти правильный, кроме случаев когда число последовательности кратно 10 (т.е. идёт так: 39304142), а самое интересное начиается на k=90: 4748496777788899... smile.gif

Вариант Спауна: я не понял что он делает smile.gif

Вариант Гирдера оказался правильным, и в виду того, что не использовались строки, массивы, я ставлю ему плюс smile.gif



--------------------
С уважением, г-н Посол.
PM   Вверх
Pakshin A. S.
Дата 15.10.2004, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



Цитата(p0s0l @ 15.10.2004, 21:50)
Вариант 2 Пакшина уже на 10 выдаёт 9

stena.gif
Чёрт, не тот вариант...
stena.gif
Код

program N4_2;

{$APPTYPE CONSOLE}

uses
 SysUtils;

var
k,i,x:int64;
a,s:int64;
begin
readln(k);
i:=1;
a:=1;
while i <= k do
 begin
  s:=a;
  if a = 10
   then
    {Вот это дополнение}
    if i = k
     then
      dec(i)
     else
      inc(i);
  while (s <> 0) and (i <= k) do
   begin
    x:=s mod 10;
    s:=s div 10;
    inc(i)
   end;
  if i <= k
   then
    inc(a)
 end;
writeln;
writeln(x);
readln
end.

PM   Вверх
Pakshin A. S.
Дата 15.10.2004, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



Подавьте меня: я - идиот!!! Можете при встрече на меня пальцем показывать... smile.gif
Код

program N4_2;

{$APPTYPE CONSOLE}

uses
 SysUtils;

var
k,i,x:int64;
a:int64;
s:string;
begin
readln(k);
i:=1;
a:=0;
while i <= k do
 begin
  inc(a);
  s:=IntToStr(a);
  while (i <= k) and (s <> '') do
   begin
    if i < k
     then
      Delete(s, 1, 1);
    inc(i)
   end
 end;
x:=StrToInt(s[1]);
writeln;
writeln(x);
readln
end.

Как теперь?
PM   Вверх
p0s0l
Дата 16.10.2004, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



Теперь правильно smile.gif

Но плюса уже не будет smile.gif

Придумывай еще задачку. Только немного хотя бы по-сложнее...



--------------------
С уважением, г-н Посол.
PM   Вверх
Pakshin A. S.
  Дата 17.10.2004, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



Цитата(p0s0l @ 16.10.2004, 01:12)
Но плюса уже не будет

Ну и что? Мне - главное решить задачу самостоятельно!!!!

Цитата(p0s0l @ 16.10.2004, 01:12)
Придумывай еще задачку.

Я её не придумывал, мне её дали. Если что-нибудь интересное будет, то обязательно выложу, а пока всё скучно...

Это сообщение отредактировал(а) Pakshin A. S. - 17.10.2004, 13:09
PM   Вверх
SoWa
Дата 17.12.2004, 06:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 2
Всего: 74



Цитата
Дано натуральное k. Напечатать k-ую цифру последовательности:
123456789101112131415161718192021222324...


Если к-ую цифру... Это-же последняя цифра?
Или вдруг её вооще нету?


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
Vladimir13
Дата 17.12.2004, 07:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 8.12.2004
Где: Волгоград, Россия

Репутация: 1
Всего: 1



SoWa не факт! у числа 13 к-ая цифра будет 12345678910111213
--------------------
Лучший метод - метод тыкаобращаться по адресу: mvdr
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0491 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.