Паскаль
Даны целое число k (1≤ k≤ 180) и последовательность цифр 10111213...9899, в которой выписаны подряд все двухзначные числа. Определить k-ю цифру.

1

Ответы и объяснения

Лучший Ответ!
  • Участник Знаний
2014-04-09T19:23:51+04:00
Var
   k,i:integer;
   s,x:string;
begin
for i:=10 to 99 do  s:=s+IntToStr(i);
writeln(s);
write('Введите число k: ');
readln(k);
x:=s[k];
writeln(k,'-я цифра: ',x)
end.
и что означает строчка s:=s+IntToStr(i);
string - строка; IntToStr - преобразование целого числа в строку
а возможно как-нибудь по-другому без string и IntToStr ? И ещё почему в строке x:=s[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.