Var n,i,j,k,s,sn:integer;
begin
writeln('n = ');
readln(n);
sn:=round(sqrt(n));
for i:=1 to sn do
for j:=1 to sn do
for k:=1 to sn do
begin
s:=i*i+j*j+k*k;
if s=n then writeln(i,'^2+',j,'^2+',k,'^2 = ',s);
end;
end.
Пример:
<span>n = 253
3^2+10^2+12^2 = 253
3^2+12^2+10^2 = 253
10^2+3^2+12^2 = 253
10^2+12^2+3^2 = 253
12^2+3^2+10^2 = 253
12^2+10^2+3^2 = 253</span>
//PascalABC.NET 3.3,сборка 1627 от 27.01.2018
//Внимание! Если программа не работает, обновите версию!
begin
var a:=0;var t:=0;
for var i:=1 to 3 do
begin
if i=3 then
a:=1
else a:=7;
a*=7;
t:=t+a;
end;
t:=t*7;
Writeln('Количество предметов=',t);
end.
Или как в школах учат ->
var a,t:integer;
begin
for var i:=1 to 3 do
begin
a:=0; t:=0;
if i=3 then
a:=1
else a:=7;
a*=7;
t:=t+a;
end;
t:=t*7;
Writeln('Количество предметов=',t);
end.
В 1 бите можно закодировать 2 символа, в двух - 4, в трех - 8 и так далее.
Ищем наименьшую степень двойки, которая окажется >= количеству символов, которые надо закодировать. Показатель этой степени и будет являться ответом. В данном случает это 64, а 64 - это 2 в степени 6.
Ответ: 6 бит.
Const n=10;
var a: array [1..n] of integer;
i,p: integer;
begin
for i:=1 to n do
a[i]:=random(-2,2);
writeln (a);
p:=1;
for i:=1 to n do
if a[i]<>0 then p:=p*a[i];
writeln (p)
end.