program n1;
var num1,num2,i: integer;
numc: string;
begin
write('input number => ');
readln(num1);
numc:=inttostr(num1);
writeln(num1);
for i:=length(numc) downto 1 do
write(numc[i]);
end.
program n2;
var num1,num2,i,sum: integer;
numc: string;
begin
write('input number => ');
readln(num1);
numc:=inttostr(num1);
for i:=length(numc) downto 1 do
sum:=strtoint(numc[i])+sum;
writeln(sum)
end.
program n4;
var num1: integer;
numc: string;
begin
write('input number => ');
readln(num1);
numc:=inttostr(num1);
if numc[2]=numc[1] then writeln('yes')
else writeln('no');
end.
program n5;
var num1,num2,i: integer;
begin
write('input number 1 => ');
readln(num1);
write('input number 2 => ');
readln(num2);
if num1 mod num2 = 0 then writeln('yes')
else writeln('no');
end.
program n6;
var num1: real;
numc: string;
h: integer;
begin
write('input number => ');
readln(num1);
numc:=floattostr(num1);
h:=strtoint(numc[pos('.',numc)+1]);
writeln(h);
end.
Program sneg;
uses graphABC;
beginsetpenwidth(3);
setwindowsize(400,500);
ellipse(120,350,280,480);
circle(200,300,60);
circle(200,210,40);
line(170,90,230,90);
line(160,180,240,180);
line(170,90,160,180);
line(230,90,240,180);
floodfill(200,173,clblack);
floodfill(200,123,clblack);
setbrushcolor(clblack);
circle(190,200,5);
circle(210,200,5);
line(200,210,220,220);
line(200,220,220,220);
line(200,210,200,220);
floodfill(204,214,clblack);
setpenwidth(5);
arc(200,230,10,180,0);
line(70,320,170,250);
line(230,250,330,300);
line(300,450,350,200);
line(350,200,320,140);
line(350,200,340,140);
line(350,200,360,140);
line(350,200,380,140);
line(350,200,400,140);
<span>end.</span>
Более изящное решение :)
Проблема в строке c:= (b*b*b);
Ты ищешь сумму кубов, а для 4-значных чисел нужно искать сумму 4-х степеней. Нужно проверять число а: если от 100 до 999, то выполняем c:= (b*b*b); а если от 1000 до 9999, то выполняем c:= (b*b*b*b);
Код ниже работает и выдаёт результат:
число Армстронга ==> 153
число Армстронга ==> 370
число Армстронга ==> 371
число Армстронга ==> 407
число Армстронга ==> 1634
число Армстронга ==> 8208
число Армстронга ==> 9474
****************************************************************
var a,b,c,d,a2:integer;
begin
for a:=100 to 9999 do begin
d:=0;
a2:=a;
while (a2 <> 0) do begin
b:= a2 mod 10;
a2:= a2 div 10;
if a<1000 then c:= (b*b*b)
else c:= (b*b*b*b);
d:= d+c;
end;
if (a = d) then writeln('число Армстронга ==> ', a);
end;
end.
Var
n,i,result:Integer;
Begin
Read(n);
result:=-1;
for i:=1 to n do
if (i*i=n) then
begin
result:=i;
break;
end;
Writeln(result);
end.