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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.09.2011, 16:46   #1
Диман56
Форумчанин
 
Регистрация: 02.11.2010
Сообщений: 103
По умолчанию Определение к-той цифры.

ТЗ: дан ряд 3-значных чисел, от 101 до 150(101102103104105.....149150).
Вводится с клавиатуры число к(1<=k<=150). Требуется найти к-тую цифру. Наработки: определил число, содержащее к-тую цифру, определил место в этом числе к-той цифры. Теперь требуется найти саму к-тую цифру. Ветвления, циклы и прочее нельзя. В школе начали Паскаль учить, в основном пишу на С. Так бы я сейчас сделал бы if и не было бы проблем. Но нельзя. Вот мой код:
Код:
Program Primer;
var k,n,o:integer;
BEGIN
writeln('Введите к:');
read(k);
n:= k div 3 +1;
o:=k mod 3;
n:=n+100;
(*n-число, содержащее к-тую цифру, o-позиция к-той цифры в числе n*)
END.
Диман56 вне форума Ответить с цитированием
Старый 24.09.2011, 16:49   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Так бы я сейчас сделал бы if и не было бы проблем
Какой if? В Паскале по вашему нету if?)
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 24.09.2011, 17:00   #3
Диман56
Форумчанин
 
Регистрация: 02.11.2010
Сообщений: 103
По умолчанию

Есть то он есть, но толку от него 0. Мы учили только линейные операторы и if нельзя использовать).
Диман56 вне форума Ответить с цитированием
Старый 24.09.2011, 17:02   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
(1<=k<=150)
101≤k≤150, может быть?
Или 1≤k≤50
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 24.09.2011, 17:28   #5
Диман56
Форумчанин
 
Регистрация: 02.11.2010
Сообщений: 103
По умолчанию

нет. всего цифр(не чисел)-150. Поэтому 1<=k<=150.
Диман56 вне форума Ответить с цитированием
Старый 24.09.2011, 19:37   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну раз у нас только 3-значные числа, то как-то так:
Код:
c3:=n mod 10;
n:=n div 10;
c2:=n mod 10;
n:=n div 10;
c1:=n mod 10;
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 24.09.2011, 19:41   #7
Диман56
Форумчанин
 
Регистрация: 02.11.2010
Сообщений: 103
По умолчанию

Спасибо конечно, но ведь у нас к-тая цифра. Либо 1, либо 2, либо 3. То есть, нам надо это как-то связать с к.
Диман56 вне форума Ответить с цитированием
Старый 24.09.2011, 20:42   #8
VadikV
Форумчанин
 
Аватар для VadikV
 
Регистрация: 08.01.2011
Сообщений: 226
По умолчанию

Интересная задача. Хорошо пришлось логику включить
Вот, что получилось:
Код:
var
   k, n, o, r, c : integer;

begin
  Readln(k);

  n := 100 + ((k-1) div 3) + 1;

  r := k mod 3;
  o := 1;
  o := o + 9 * (r div 2);
  o := o + 99 * (r mod 2);

  c := n div o;
  c := c - (c div 10) * 10;
  WriteLn(n, '=', c);
icq 223-630-454
e-mail vysotskiy@list.ru
сайт http://www.big-library.net/
VadikV вне форума Ответить с цитированием
Старый 24.09.2011, 20:59   #9
Диман56
Форумчанин
 
Регистрация: 02.11.2010
Сообщений: 103
По умолчанию

Спасибо)) Буду вникать. я уже и свой алгоритм вывел, проблема с возведением в степень))) Вот что получилось:
Код:
c:=(k mod (1000(10^(k-1)))-k mod (1000/(10^k)))/(1000/(1-^k))
Диман56 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определение первой цифры дробной части числа Intersap Помощь студентам 2 19.09.2011 00:07
Макрос на создание одной и той же сводной Hoochara Microsoft Office Excel 14 03.08.2011 14:26
Сортирует цифры по строкам, а надо чтобы сортировала цифры , записанные через пробелы Алексей_xXx Помощь студентам 14 06.05.2009 17:42
Удоляет не в той Директории Volkogriz Общие вопросы Delphi 2 17.01.2009 22:16
Открытие файла из той же дирриктории Slim Microsoft Office Excel 2 29.03.2007 18:57