Начали изучать Паскаль и дали вот такую задачу:С клавиатуры вводится целое число k (1 ≤ k...

0 голосов
31 просмотров

Начали изучать Паскаль и дали вот такую задачу:С клавиатуры вводится целое число k (1 ≤ k ≤ 180) . Определить k-ю цифру в последовательности двузначных чисел, выписанных подряд (1011121314............979899).Помогите решить пожалуйста и желательно объясните.Буду очень благодарен.Спасибо.


Информатика (15 баллов) | 31 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Двухзначное число имеет два разряда - десятки и единицы. Если k нечетное, то это цифра десятков в числе, а если четное - цифра единиц. А само число определяется как 10 плюс частное от целочисленного деления k-1 на 2.

var
  n, k: integer;

begin
  Write('Введите натуральное число k (k<=180): ');<br>  Readln(k);
  n := 10 + (k - 1) div 2;
  if (k mod 2 = 0) then n := n mod 10
  else n := n div 10;
  Writeln('Искомая цифра- ', n)
end.

Тестовое решение:
Введите натуральное число k (k<=180): 7<br>Искомая цифра- 1



(142k баллов)
0

Спасибо большое,а можно ли как-то без if then делать?

0

Т.е. вообще ничего не анализируя?????

0

Можно. Сгенерировать в цикле текстовую строку и выбрать в ней k-й символ)))

0

Я понял как сделать с if и then,но проблема в том,что нам сказали не использовать if и then/

0

так это проблема алгоритмического плана. Надо было в условии писать, что использовать этот оператор нельзя.

0

Все равно спасибо вам.Я очень вам блогадарен.

0

Благодарен*