Egy kis egyszeru Pascal. Adott egy n szam, irjuk fel az osszes lehetseges modon egymas utani szamok osszegekent. Valakiii?
Adott egy n szam, irjuk fel az osszes lehetseges modon egymas utani szamok osszegekent. Az n-et be kell olvasni.
Pl. n=9 = 2+3+4 es 4+5
Fontos: For ciklussal kene megoldni a feladatot, 9.es szinten.
Elore is koszonom.
program proba;
uses crt;
var n,i,j,s,max:integer;
begin
readln(n);
for i:=1 to n do
begin
s:=0;
j:=i;
repeat
s:=s+j;
max:=j;
j:=j+1;
until s>=n;
if s=n then
begin
write('=') ;
for j:= i to max do
begin
write(j);
if j<max then write('+');
end;
end;
end;
readln;
end.
repeat és until nélkül:
program proba;
uses crt;
var n,i,j,k,s,max:integer;
begin
readln(n);
for i:=1 to n do
begin
s:=0;
for j:=i to n do
begin
s:=s+j;
max:=j;
j:=j+1;
if s=n then
begin
write('=') ;
for k:= i to max do
begin
write(k);
if k<max then write('+');
end;
end;
end;
end;
readln;
end.
Valami hibat ir ki.. :S
Neked lefutott?
Tól nagy számoknál már nem működik (kb. 300 felett)
mert az s változó túl megy az integer felső határán.
A megoldás:
var s:longint;
vagy, ha nem tanultátok, akkor:
var s:real;
A többi maradhat integer.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!