В записи по некоторому основанию n число шестиразрядное, поскольку оно содержит три единицы и три нуля, всего шесть цифр. При этом, самой левой (старшей) цифрой является единица. Переходим к расширенной записи, обозначая неизвестную цифру в разряде через d: 1×n⁵+d₄×n⁴+d₃×n³+d₂×n²+d₁×n¹+d₀=1104 n⁵+Δ=1104, где Δ - некоторый "довесок", равный d₄×n⁴+d₃×n³+d₂×n²+d₁×n¹+d₀ В то же время, 1104<n⁶, поскольку в противном случае число было бы семиразрядным. n⁵≤1104<n⁶ Приближенно извлекая из 1104 корни пятой и шестой степени получаем: 3.21≤1104<4.06 и в целых числах находим, что n=4. Переведем 1104 в систему счисления по основанию 4: 1104 / 4 = 276, остаток 0 276 / 4 = 69, остаток 0 69 / 4 = 17, остаток 1 17 / 4 = 4, остаток 1 4 / 4 = 1, остаток 0 1 / 4 = 0, остаток 1 Теперь выпишем остатки в обратном порядке, получая 101100 1104₁₀ = 101100₄, т.е. проверка показала, что число в самом деле содержит три единицы и три нуля.
Var St: string; z:string[10]; x:string[2]; i,j,k,m: integer; //новые переменные Begin Write('введите строку текста - St'); Readln(St); k:=0; //обнуляем на всякий случай z:='0123456789'; i:=1; for j:=1 to length(St) do //начало begin; for m:=1 to 10 do if St[j]=z[m] then inc(k); end; if k=0 then begin; writeln('в тексте нет цифр'); exit; end; //конец while i<=length(st)-1 do begin x:=copy(st,I,2); if (x[1]=x[2]) and (pos(x[1],z)<>0) then begin delete(st,i,2); insert('две',st,i); i:=i+1; end; i:=i+1; end; writeln('преобразованная строка ', st); End.
1×n⁵+d₄×n⁴+d₃×n³+d₂×n²+d₁×n¹+d₀=1104
n⁵+Δ=1104, где Δ - некоторый "довесок", равный d₄×n⁴+d₃×n³+d₂×n²+d₁×n¹+d₀
В то же время, 1104<n⁶, поскольку в противном случае число было бы семиразрядным.
n⁵≤1104<n⁶
Приближенно извлекая из 1104 корни пятой и шестой степени получаем:
3.21≤1104<4.06 и в целых числах находим, что n=4.
Переведем 1104 в систему счисления по основанию 4:
1104 / 4 = 276, остаток 0
276 / 4 = 69, остаток 0
69 / 4 = 17, остаток 1
17 / 4 = 4, остаток 1
4 / 4 = 1, остаток 0
1 / 4 = 0, остаток 1
Теперь выпишем остатки в обратном порядке, получая 101100
1104₁₀ = 101100₄, т.е. проверка показала, что число в самом деле содержит три единицы и три нуля.
ответ: 4
z:string[10];
x:string[2];
i,j,k,m: integer; //новые переменные
Begin
Write('введите строку текста - St');
Readln(St);
k:=0; //обнуляем на всякий случай
z:='0123456789';
i:=1;
for j:=1 to length(St) do //начало
begin;
for m:=1 to 10 do
if St[j]=z[m] then inc(k);
end;
if k=0 then
begin;
writeln('в тексте нет цифр');
exit;
end; //конец
while i<=length(st)-1 do
begin
x:=copy(st,I,2);
if (x[1]=x[2]) and (pos(x[1],z)<>0) then
begin
delete(st,i,2);
insert('две',st,i);
i:=i+1;
end;
i:=i+1;
end;
writeln('преобразованная строка ', st);
End.