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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.01.2009, 12:13   #1
kry
Пользователь
 
Регистрация: 29.12.2008
Сообщений: 13
По умолчанию Просьба помочь с задачей.

Задача.
Для заданного К вычислить К-тую цифру последовательности.
2 4 6 8 10 12 14 16 18 20 .. .. .. .. .. ... (все натуральные четные числа)
то есть если нада вычислить 10ую цифру последовательности то она будет равна 4


2 4 6 8 10 12 14 16 18 20 .. .. .. .. .. ...


Лаба идет к теме циклов.
Если есть возможность то можно не использовать массивы.
Хотя если ее нету то напишите пожалуйста хоть как нить.
Дальше уже сам переделаю


Заранее спасибо



С уважением Владимир.
kry вне форума Ответить с цитированием
Старый 11.01.2009, 12:14   #2
kry
Пользователь
 
Регистрация: 29.12.2008
Сообщений: 13
По умолчанию

Ах да ... совсем забыл.
Задача должна быть решена до завтрашнего утра.


P.S. Пока сижу сам думаю.
kry вне форума Ответить с цитированием
Старый 11.01.2009, 12:32   #3
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Код:
var s:string;
    i,k,j:integer;
begin
writeln('Input');
readln(s);
writeln('Number');
readln(k);
j:=0;
    for i:=1 to length(s) do
     begin
      if s[i] in ['0'..'9'] then inc(j);
       if j=k then begin
                    writeln('Digit ',s[i]);
                    break;
                   end;
     end;
end.
P.S. Здесь Вам никто ничего не должен
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 11.01.2009, 12:48   #4
kry
Пользователь
 
Регистрация: 29.12.2008
Сообщений: 13
По умолчанию

Я понимаю что никто не должен, просто пытался сформулировать условия задачи.
Извините если что и спасибо за помощь.
kry вне форума Ответить с цитированием
Старый 11.01.2009, 12:51   #5
kry
Пользователь
 
Регистрация: 29.12.2008
Сообщений: 13
По умолчанию

Хм... странноватый алгоритм.
Дело в том что вряд ли последовательность можно представить как строку.
Скорее всего это будет просто массив или...такс у мну появилась идея щас попробую осуществить.
kry вне форума Ответить с цитированием
Старый 11.01.2009, 13:01   #6
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Так Вам с этой последовательностью ничего делать не надо. Какая разница как ее интерпретировать...
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 11.01.2009, 13:20   #7
kry
Пользователь
 
Регистрация: 29.12.2008
Сообщений: 13
По умолчанию

Вот что я прикинул

Код:
program lab8;

const MAX=99;
var
     i,i2,j,k,mx,count: Integer;

begin
     Writeln('VVedite maximalnoe chislo posledovatelnosti');
     readln(mx);
     k:=0;
     for i:=1 to mx do
         begin
         k:=k+2;
         write('',k,' ');
         if((k div 10)) >= 1 then count:=count+2
         else
         count:=count+1;
         if(count=mx) then break
         end;
writeln('count=',count);
readln;
end.
Терь осталось как то вывести на экран именно ту цифру которая нужна.



Последний раз редактировалось kry; 11.01.2009 в 13:25.
kry вне форума Ответить с цитированием
Старый 11.01.2009, 13:25   #8
kry
Пользователь
 
Регистрация: 29.12.2008
Сообщений: 13
По умолчанию

Помогите дальше развить идею )
kry вне форума Ответить с цитированием
Старый 11.01.2009, 13:45   #9
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Помогаем развивать дальше.
Код:
uses crt;
var i,j,k,n,o:integer;
    a,t:longint;
begin
clrscr;
write('Введите k=');readln(k);
t:=0;i:=0;
repeat
t:=t+2;{если здесь t:=t+1, то будет искать цифру ряда       1234567891011121314...}
j:=t;
while j>0 do{считаем количество цифр в числе и добавляем к общему количеству}
    begin
      j:=j div 10;
      i:=i+1;
    end;
until i>=k;{дошли до номера к}
while i>=k do{возвращаемся по цифрам последнего числа до нужной}
         begin o:=t mod 10;
               t:=t div 10;
               i:=i-1;
         end;
      writeln('k-я цифра:',o);
readln
end.
puporev вне форума Ответить с цитированием
Старый 11.01.2009, 13:53   #10
kry
Пользователь
 
Регистрация: 29.12.2008
Сообщений: 13
По умолчанию

Огромное тебе спасибо все работает как надо )
kry вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задачки на массивы. Большая просьба помочь tohkaRu Паскаль, Turbo Pascal, PascalABC.NET 9 08.12.2008 23:31
Просьба помочь новичку со списками. cbst Общие вопросы C/C++ 4 13.06.2008 19:32
Просьба помочь с состовлением формулы... c_zurab Microsoft Office Excel 1 11.03.2008 01:35
Просьба помочь с решением уравнения Stelix Помощь студентам 9 14.11.2007 19:00