LNKO

Címkék
LNKO
2012-11-10T21:26:50+01:00
2012-11-11T12:01:24+01:00
2022-07-19T05:05:50+02:00
Bomeyak
ennnyire jutottam

#include<fstream> using namespace std; fstream f("tort.in",ios::in); fstream g("tort.out",ios::out); int main() { int n,m,r,nr,d; f>>n; f>>m; r=n%m; while(r) { n=m; m=r; r=n%m; d=m; } nr=m/d*n/d; g<<nr<<" "<<d; }

a bemeno adatokra :20 24
30 4 -et kellenne adjon ehelyett 5 4 -ad
miert??
Mutasd a teljes hozzászólást!
Ha ez, szerinted jó, akkor miért nem hasonlóan írtad meg, azaz csinálnod kellett volna egy cmmdc() függvényt, amit a main() függvényben meghívsz:

int cmmdc(int x, int y) { int r; while (y != 0) { r = x % y; x = y; y = r; } return x; }

Operators - C++ Tutorials
Mutasd a teljes hozzászólást!

  • A fő hiba, hogy m értéke menet közben változik, a végén lévő m már nem az az m, ami beolvasáskor volt.
    Egy segédváltozót kellene használni e célra: pl. mm-t.

    Az nr=m/d*n/d; sem jó.

    Egyébként 20 és 24 esetében lnko=4, lkkt=120 volna.

    int n,m,mm,r,nr,d; ... mm=m; r=n%mm; // itt még r=n%m; is lehetne while(r) { n=mm; mm=r; // itt változott az m r=n%mm; d=mm; } nr=m/d*n; // nr=m/d*n/d; helyett ...
    Mutasd a teljes hozzászólást!
  • nem az a feladat h a LNKO-t es az LKKT-t hatarozzam meg

    hanem az h van egy MxN-es teglalap alaku csokoládé egyenlö negyzetekre osztva

    es hatarozzuk meg hany egyenlo negyzetre tudjuk osztani a teglalapot erre a 30-at kell kapjam eredmenyul es az egyenlo negyzetek meretet erre pedig 4-et kell kapjak ha a bemeno adatok

    M=20 N=24
    Mutasd a teljes hozzászólást!
  • Az eredeti kérdésből ez egyáltalán nem derült ki, de akkor legalább az nr=m/d*n/d; jó volt.
    Viszont az m-t és az n-t is ki kell menteni és segédváltozókat használni, mert a while-ban mindegyik értéke változik.

    ... mm=m; nn=n; r=nn%mm; while(r) { nn=mm; mm=r; r=nn%mm; d=mm; } nr=m/d*n/d; ...
    Mutasd a teljes hozzászólást!
  • hanem az h van egy MxN-es teglalap alaku csokoládé egyenlö negyzetekre osztva, es hatarozzuk meg hany egyenlo negyzetre tudjuk osztani


    Nagyon egyszerű a válasz: MxN részre lehet osztani. És biztosan egyformák, hiszen az eredeti feltételben már szerepel, hogy egyformák.
    Mutasd a teljes hozzászólást!
  • Igen, ezt már nem is akartam firtatni, hogy a kérdés most sem egyértelmű, mert több megoldás is lehet.
    480 db 1x1-es négyzet;
    120 db 2x2-es négyzet;
    30 db 4x4-es négyzet;

    A "4"-es méret sem egyértelmű, mert ez jelenthet
    4 területú 2x2-es, avagy
    4 oldalú 4x4-es lapot is.
    Csak közvetve derült ki, hogy az utóbbi kell.

    Feltételeztem, hogy a legnagyobb méretű négyzet keresendő, hiszen életszerű helyzetben szempont lehet hogy minél kevesebb törést kelljen alkalmazni, de a mellékelt kód is ezt sugallta.
    Mutasd a teljes hozzászólást!
  • De: mi van, ha a leírt, eredeti feltételek a jók? Lehet, hogy a kód írása közben gondolt mást mint, amit kérnek tőle valójában.
    Ilyenkor kellene bemásolni az eredeti feladat szövegét, és nem saját értelmezését továbbadni...
    Mutasd a teljes hozzászólást!
  • az eredeti feladat szovege roman nyelven irodott igy is masoljam be??
    Mutasd a teljes hozzászólást!
  • Részemről felesleges, de ha te sem tudsz románul, akkor jobb lenne bemásolnád. Hátha tud valaki románul itt a prog.hu-n.
    Mutasd a teljes hozzászólást!
  • Oldal

    itt van hatha megerti valaki jobban mint en
    Mutasd a teljes hozzászólást!
  • Ezt kellene pontosan értelmezni:
    Găsiţi numărul minim de porţii care se pot obţine şi dimensiunea L a acestora. Atât dimensiunile dreptunghiului cât şi ale pătratelor în care se împarte sunt numere întregi.


    A google ezt adja rá:
    Keresse meg a minimális számú doboz lehet beszerezni, és az L méret. Mind A négyszög méreteit és terek, ahol részesedések egészek.


    Az ilyen szavakat, mint pl. "minimális" előszeretettel hagytál ki a magyarázatodból. Természetesen ez nagyon fontos!
    Tehát: mi is a minimális? Gondolom, te jobban érted...
    Mutasd a teljes hozzászólást!
  • en azt a mondatot igy forditanam:

    talaljatok meg azt a legkevesebb szamu (portii=vegyuk most felosztasnak vagy resznek)aminek meg lehet hatarozni az L meretet.ugy a teglalap meretet mint a negyzeteket is es a vegen egesz szamok legyenek azt irja

    ennyit tudok levonni

    es pascalbann megvan a megoldas csak nem tudom atirni c++-ra


    program tort; var m,n,d,nr:longint; f1,f2:text; function cmmdc(x,y:longint):longint; var r:longint; begin while y<>0 do begin r:=x mod y; x:=y; y:=r end; cmmdc:=x end; begin assign(f1,'tort.in'); reset(f1); readln(f1,m,n); close(f1); d:=cmmdc(m,n); nr := (m div d)*(n div d); assign(f2,'tort.out'); rewrite(f2); writeln(f2,nr,' ',d); close(f2) end.

    ahol a cmmdc=lnko

    es c++-ba is text-file-bol kellene beolvassam
    Mutasd a teljes hozzászólást!
  • Bizonyára nem azért adnak egy feladatot, hogy a triviális (480 db 1x1-es lap) változat legyen a megoldás.
    A google műfordítása szerinti minimális számú doboz-ról könnyen elképzelhető, hogy minimális számú négyzetlapra, darabra, felosztásra utal, ami egyúttal a darabok maximális méretét is jelenti.

    Találjál még ki tetszőleges bemenő adatokat és
    a - kockás papíron is modellezhető - saját számításodat vesd össze
    a meglévő Pascal program és
    az általam mellékelt kód eredményeivel.
    (Egyébként az esetek egy részében tényleg csak 1x1-es lapokkal oldható meg.)
    Mutasd a teljes hozzászólást!
  • Ha ez, szerinted jó, akkor miért nem hasonlóan írtad meg, azaz csinálnod kellett volna egy cmmdc() függvényt, amit a main() függvényben meghívsz:

    int cmmdc(int x, int y) { int r; while (y != 0) { r = x % y; x = y; y = r; } return x; }

    Operators - C++ Tutorials
    Mutasd a teljes hozzászólást!
  • mert nem tudom a c++-ba h kell fuggvenyt irni?

    es a fuggveny utan??hogyan tovabb
    Mutasd a teljes hozzászólást!
  • es a fuggveny utan??hogyan tovabb


    Megírod a main()-t is. És abból hívod meg a cmmdc() függvényt. , Ahogy a Pascal mintában van.
    --------------

    mert nem tudom a c++-ba h kell fuggvenyt irni?


    A main() függvényt meg tudtad írni? Az is csak egy függvény. Tehát, tudsz függvényt írni.
    Mutasd a teljes hozzászólást!

  • #include <fstream> using namespace std; fstream f("tort.in",ios::in); fstream g("tort.out",ios::out); int m,n,d,nr; int cmmdc(int x, int y) { int r; while (y != 0) { r = x % y; x = y; y = r; } return x; } int main(){ f>>m>>n; d=cmmdc(m,n); nr=(m/d)*(n/d); g<<nr<<" "<<d; }

    erre megkaptam a 100 pontot

    koszonom a segiteseget
    most tanulom a c++ es ilyen feladatokat csinalok ugyhogy ha lesz meg hasonlo megoldatlan feladatom majd felteszem a kerdesemet
    Mutasd a teljes hozzászólást!
  • Érdemes külön függvényt írni egy csak egyetlen alkalommal használandó eljárásra? Még lesz rá lehetőség.

    A fájlba/ból írás lebonyolítása inkább egy új topiknak a kérdése legyen.

    Az eredeti kérdésnél maradva, próbáljad ki az eredeti kódodat a fent mellékelt javítással (cs++ ... 2012.11.11. 10:18) és hasonlítsad össze a talált Pascal program eredményével.

    Mutasd a teljes hozzászólást!
Címkék
abcd