Výsledky 1 až 25 z 31

Téma: faktorial v c++

Hybrid View

Předcházející příspěvek Předcházející příspěvek   Další příspěvek Další příspěvek
  1. #1
    Senior Member Avatar uživatele Anduril
    Založen
    12.10.2002
    Bydliště
    OVA, OL
    Věk
    42
    Příspěvky
    3 474
    Vliv
    329

    Standardní Re: faktorial v c++

    Imo kdyz by ta fce vypadala takto

    Kód:
    float faktorial1(float f)
    {
     int i;
     for (i = f-1; i >= 2; i--)
         f *= i;
     return f;
    }
    tak to musi davat korektni vysledek...
    ntb: HP EliteBook 8460p i7-2640M | 8GB RAM | 120GB SSD + 500GB HDD | ATi HD6470 | 14" HD+ | W7 PRO
    home: HP Docking Station | HP L2045W | WD 500GB Scorpio Blue USB box
    work: HP Docking Station | HP L2445W
    audio: Epiphone G-400 SG + Sounder Telecaster | E-MU 0202 | Cambridge Audio Azur 340R | Wharfedale Diamond 9.2 | Magnat Betasub 20A | Sennheiser HD555

  2. #2

    Standardní Re: faktorial v c++

    Citace Původně odeslal Anduril Zobrazit příspěvek
    Imo kdyz by ta fce vypadala takto

    Kód:
    float faktorial1(float f)
    {
     int i;
     for (i = f-1; i >= 2; i--)
         f *= i;
     return f;
    }
    tak to musi davat korektni vysledek...

    Ano tohle chodi a umi to spocitat maximalne 34! ... ja predtim zkousel float jen te funkce faktorial1, f sem nechal int...nechapu proc by melo f byt neco jineho nez int, prece faktorial muzu pocitat jen z celych cisel

    Jinak kdyz se pouzije double umi to az 170!

    muze mi ale nekdo vysvetlit proc u te druhe rekurzivni fce muze byt f integer a funguje to stejne jako double u te funkce pres cyklus for ?



    double faktorial1(double f)
    {
    int i;
    for (i = f-1; i >= 2; i--)
    f *= i;
    return f;
    }

    double faktorial2(int f)
    {
    if (f <= 1) return 1;
    return f * faktorial2(f - 1);
    }




    PS: Muze mi nekdo napsat presne omezeni jednotlivych typu:

    short int
    int
    long int
    float
    double
    long double


    Dik vsem za pomoc!
    Normalni PC :)

  3. #3

    Standardní Re: faktorial v c++

    Rozsahy typu zalezi na compileru, podivej se do napovedy...
    GigaByte GA-M55plus-S3G --- A64 3200+ @ 24oo ~ 1,375V BOX --- 2x512 Geil 667 CL4 @ 980 CL5 --- WD2500KS --- Acer AL1721ms --- 1/1 MBit/s via WiFi
    Blog

    09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0 aneb jeste ze ty "ochrany" programujou rozumny lidi :]

  4. #4

    Standardní Re: faktorial v c++

    Citace Původně odeslal SOAD Zobrazit příspěvek
    PS: Muze mi nekdo napsat presne omezeni jednotlivych typu:

    short int
    int
    long int
    float
    double
    long double


    Dik vsem za pomoc!
    Co takhle pouzit HELP co mas v cecku nebo MS MSDN, ktery mas volne pristupny na internetu

    Predpokladam ze pouzivas MSVC++: Type ranges
    GCC by melo mit vetsinou stejne typy.
    Black holes are where God divided by zero. - Steven Wright
    2600K s AC HF14 | P8P67Deluxe s 16GB DDR3 | GTX1080 s LP2480zx | EVO850 s ICH10R | X-Fi s HD555 | TripleXtreme 360 s HPPS+ | Windows 10 + 7

  5. #5
    Senior Member Avatar uživatele Anduril
    Založen
    12.10.2002
    Bydliště
    OVA, OL
    Věk
    42
    Příspěvky
    3 474
    Vliv
    329

    Standardní Re: faktorial v c++

    Protoze v pripade fce s cyklem ukladas do promenne f vysledek, ktery roste a roste (proto int nestaci), kdezto v pripade rekurzivni fce je hodnota f snizujici se male cislo..napr. tech tvych 12 nebo 34 a podobne..
    ntb: HP EliteBook 8460p i7-2640M | 8GB RAM | 120GB SSD + 500GB HDD | ATi HD6470 | 14" HD+ | W7 PRO
    home: HP Docking Station | HP L2045W | WD 500GB Scorpio Blue USB box
    work: HP Docking Station | HP L2445W
    audio: Epiphone G-400 SG + Sounder Telecaster | E-MU 0202 | Cambridge Audio Azur 340R | Wharfedale Diamond 9.2 | Magnat Betasub 20A | Sennheiser HD555

  6. #6

    Standardní Re: faktorial v c++

    Citace Původně odeslal Anduril Zobrazit příspěvek
    Protoze v pripade fce s cyklem ukladas do promenne f vysledek, ktery roste a roste (proto int nestaci), kdezto v pripade rekurzivni fce je hodnota f snizujici se male cislo..napr. tech tvych 12 nebo 34 a podobne..
    A co myslis, ze je vhodnejsi pouzivat ? Cyklus nebo rekurzivni fci ?

    Haste:dik!
    Normalni PC :)

  7. #7
    Senior Member Avatar uživatele Anduril
    Založen
    12.10.2002
    Bydliště
    OVA, OL
    Věk
    42
    Příspěvky
    3 474
    Vliv
    329

    Standardní Re: faktorial v c++

    V pripade malych cisel je to imho jedno. V pripade vyssich vysledku a velke vstupni hodnoty by mohlo dojit k preteceni zasobniku v pripade rekurzivni funkce.
    ntb: HP EliteBook 8460p i7-2640M | 8GB RAM | 120GB SSD + 500GB HDD | ATi HD6470 | 14" HD+ | W7 PRO
    home: HP Docking Station | HP L2045W | WD 500GB Scorpio Blue USB box
    work: HP Docking Station | HP L2445W
    audio: Epiphone G-400 SG + Sounder Telecaster | E-MU 0202 | Cambridge Audio Azur 340R | Wharfedale Diamond 9.2 | Magnat Betasub 20A | Sennheiser HD555

  8. #8

    Standardní Re: faktorial v c++

    Citace Původně odeslal Anduril Zobrazit příspěvek
    Protoze v pripade fce s cyklem ukladas do promenne f vysledek, ktery roste a roste (proto int nestaci), kdezto v pripade rekurzivni fce je hodnota f snizujici se male cislo..napr. tech tvych 12 nebo 34 a podobne..
    ale stejne ten vysledek vracis jako double ... nebo mi neco unika?
    Naposledy upravil Fox!MURDER; 03.02.2007 v 20:06.
    Hrrrr, will you stop using people as human driven search engines? Google.com has all the answers you need.

  9. #9
    Senior Member Avatar uživatele Anduril
    Založen
    12.10.2002
    Bydliště
    OVA, OL
    Věk
    42
    Příspěvky
    3 474
    Vliv
    329

    Standardní Re: faktorial v c++

    Citace Původně odeslal Fox!MURDER Zobrazit příspěvek
    ale stejne ten vysledek vracis jako double ... nebo mi neco unika?
    Ted te asi nechapu...
    ntb: HP EliteBook 8460p i7-2640M | 8GB RAM | 120GB SSD + 500GB HDD | ATi HD6470 | 14" HD+ | W7 PRO
    home: HP Docking Station | HP L2045W | WD 500GB Scorpio Blue USB box
    work: HP Docking Station | HP L2445W
    audio: Epiphone G-400 SG + Sounder Telecaster | E-MU 0202 | Cambridge Audio Azur 340R | Wharfedale Diamond 9.2 | Magnat Betasub 20A | Sennheiser HD555

  10. #10
    Senior Member Avatar uživatele Anduril
    Založen
    12.10.2002
    Bydliště
    OVA, OL
    Věk
    42
    Příspěvky
    3 474
    Vliv
    329

    Standardní Re: faktorial v c++

    Citace Původně odeslal Fox!MURDER Zobrazit příspěvek
    ale stejne ten vysledek vracis jako double ... nebo mi neco unika?
    Jj, vysledek vracis jako double, jenze v pripade funkce s cyklem slouzi ten vstupni parametr zaroven jako docasna promenna pro drzeni vysledku funkce, ktery musi byt double, tedy i parametr musi byt double...pokud bych nezavedl pro vysledek nejakou jinou promennou.
    V pripade rekurzivni funkce staci pro parametr imho int proto, ze drzi hodnoty pouze - napr. v pripade faktorialu 3 - 3, 2 a 1 a vysledek se pocita na zasobniku, ten je pak double, protoze tam uz jsou vypoctene vyssi hodnoty v pripade vyssich "f".
    ntb: HP EliteBook 8460p i7-2640M | 8GB RAM | 120GB SSD + 500GB HDD | ATi HD6470 | 14" HD+ | W7 PRO
    home: HP Docking Station | HP L2045W | WD 500GB Scorpio Blue USB box
    work: HP Docking Station | HP L2445W
    audio: Epiphone G-400 SG + Sounder Telecaster | E-MU 0202 | Cambridge Audio Azur 340R | Wharfedale Diamond 9.2 | Magnat Betasub 20A | Sennheiser HD555

Informace o tématu

Users Browsing this Thread

Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)

Pravidla přispívání

  • Nemůžete zakládat nová témata
  • Nemůžete zasílat odpovědi
  • Nemůžete přikládat přílohy
  • Nemůžete upravovat své příspěvky
  •