Консультация № 196628
10.10.2019, 10:08
0.00 руб.
0 3 1
Здравствуйте! У меня возникли сложности с таким вопросом:
Дано цело число k от 1 до 180. Нужно определить, какая цифра находится в k-й позиции последовательности 10111213...9899, в которой выписаны подряд все двузначные числа.
Спасибо

Обсуждение

давно
Студент
402651
154
10.10.2019, 10:29
общий
10.10.2019, 11:52
это ответ
Здравствуйте, dkhrebtovich!
Вот 1- ый вариант...
[code lang=pascal]{ Дано цело число k от 1 до 180. Нужно определить, какая цифра находится в k-й позиции
последовательности 10111213...9899, в которой выписаны подряд все двузначные числа.}
Program Cifra_v_k;
var
k, i: integer;
s, x: string; // string - строка;

begin
for i := 10 to 99 do s := s + IntToStr(i); // IntToStr - преобразование целого числа в строку
writeln(s);
write('Введите число k: ');
readln(k);
x := s[k]; // k - рассматривается как элемент массива
writeln(k, '-я цифра: ', x)
end.[/code]

2 - ой вариант...

[code lang=pascal]{ Дано цело число k от 1 до 180. Нужно определить, какая цифра находится в k-й позиции
последовательности 10111213...9899, в которой выписаны подряд все двузначные числа.}
program Cifra_v_k;

var
k, x: integer;

begin
write('Введите число k: ');
readln(k);
x := ((k - 1) div 2) + 10;
if (k mod 2 <> 0) then
x := x div 10
else x := x mod 10;
writeln(k, '-я цифра: ', x)
end.[/code]

Выбирай...
5
давно
Посетитель
403308
5
10.10.2019, 10:34
общий
Pascal ABC
давно
Посетитель
403308
5
10.10.2019, 10:50
общий
Спасибо больше, форум всегда выручает.
Форма ответа