Egy embernek 24 szál cigije van. Minden 4. elszívott cigi után kap egyet. Ki kell írnom a kezdeti cigik számát és a a végén hány cigit szívott el és mennyi csikkje maradt. Ezt pascalba. Hogy kell?
program cigaretta;
uses crt;
var csikkek,cigi,szuksegescsikk,elszivottcigi:byte;
begin
Writeln('Add meg hany cigivel indul el Levi : ');
readln(cigi);
Writeln('Hany csikkbol tud egy uj cigit tekerni Levi : ');
readln(szuksegescsikk);
csikkek:=0;
elszivottcigi:=0;
while cigi>0 do
begin
cigi:=cigi-1;
csikkek:=csikkek+1;
elszivottcigi:=elszivottcigi+1;
if csikkek>=szuksegescsikk then
begin
cigi:=cigi+(Csikkek DIV szuksegescsikk);
csikkek:=csikkek-(Csikkek Div szuksegescsikk)*szuksegescsikk;
end;
end;
Writeln('Levi ',elszivottcigi,' cigit szivott el');
writeln('Levinek ',csikkek,' csikkje marad');
repeat until keypressed;
end.
"Hany csikkbol tud egy uj cigit tekerni"
Ez is a feladatban van? :)
#2 Igen, ez a 4 a kérdezőnél. Mert az eredeti feladat úgy szól, hogy 4 csikkből tud sodorni egy új cigit. Ez teszi egy hangyányit trükkössé a feladatot elsőre.
Kérdező: ehhez minek program? Ha nem konkrét számokkal dolgoznál (lásd #1), akkor érteném, de...
Ahamm, értem. :)
Akkor valami ilyesmi is működhet?
...
var cigidb, csikkdb, elszivottdb : integer;
cigidb := 24;
csikkdb := 0;
elszivottdb := 0;
while cigidb>0 do begin
__elszivottdb := elszivottdb + 1;
__cigidb := cigidb - 1;
__csikkdb := csikkdb + 1;
__if csikkdb>=4 then begin
____csikkdb := csikkdb - 4;
____cigidb := cigidb + 1;
__end
end
Writeln("Elszívott cigik: ", elszivottdb);
Writeln("Csikkek a végén: ", csikkdb);
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!