Дано двузначное число k. Определить k-ю цифру последовательности 248163264128256. (сте-пени 2) - Pascal ABC
Формулировка задачи:
Не могу понять как задать последовательность степени 2. Пожалуйста,помогите!В интернете решения нет,есть со степенью 10,но это не то,все тупо выбирают либо 1 либо 0 выводить,а тут это не подходит!
Дано двузначное число k. Определить k-ю цифру последовательности 248163264128256... (сте-пени 2).
Решение задачи: «Дано двузначное число k. Определить k-ю цифру последовательности 248163264128256. (сте-пени 2)»
textual
Листинг программы
var s : string;
AllLen, n, k : integer;
begin
repeat
WriteLn('Введите K: '); Readln(k);
until k in [10..99];
n:=1;
AllLen:=0;
repeat
n:=n*2;
s:=IntToStr(n);
AllLen := AllLen +Length(s);
until k<=AllLen;
WriteLn(k,'-я цифра в последовательности = ', Copy(s, Length(s)-(AllLen-k),1));
end.
Объяснение кода листинга программы
- Переменная
sобъявлена как строка (string). - Переменные
AllLen,nиkобъявлены как целые числа (integer). - В цикле
repeatпользователю предлагается ввести значениеkот 10 до 99. - Переменная
nинициализируется значением 1. - Переменная
AllLenинициализируется нулем. - В цикле
repeatпеременнаяnумножается на 2, и в переменнуюsзаписывается строковое представление результата. - Переменная
AllLenувеличивается на длину строкиs. - Цикл продолжается до тех пор, пока
kне станет равнымAllLen. - Выводится сообщение с номером
kи соответствующей цифрой из последовательности. Примечание: В данном коде используется функцияIntToStr, которая преобразует целое число в строку.