Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di daneel
    Registrato dal
    Oct 2002
    Messaggi
    229

    [C++] Calcolo del fattoriale

    codice:
    int factorial(int x){
    	x=floor(x);
    	if(x>=0)  {
    		if((x==0) || (x==1)) return 1;
    		else return (x*factorial(x-1));
    		/* oppure:
    		int result=1;
    		for(int i=2;i<=x;i++) result=result*i;
    		return result;
    		*/
    	}else{
    		return 0;
    	}
    }
    // ...
    printf("%d",factorial(17));
    }
    Perché la funzione restituisce valori corretti del fattoriale solo fino a x<=16?

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    167
    Perchè dal 17 fattoriale in poi esci dal range dei numeri interi.
    Tralaltro ti dovrebbe dare un warning su floor() che vuole un double, non un int.

  3. #3
    Utente di HTML.it L'avatar di daneel
    Registrato dal
    Oct 2002
    Messaggi
    229
    Ho rimosso il floor.
    Che tipo di dato devo usare per poter visualizzare factorial(factorial(factorial(3))) (fattoriale di 720)?

  4. #4
    720! e` leggermente immenso!

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    1,202
    Per 720 ti servirà un long long long long double
    Debian GNU/Linux sid
    Publishing a theory should not be the end of one's conversation with the universe, but the beginning. (Eric S. Raymond)
    Kernel 2.6.14-ck1

  6. #6
    Utente di HTML.it L'avatar di daneel
    Registrato dal
    Oct 2002
    Messaggi
    229
    Lo so che 720! un po' grande... per questo volevo farlo calcolare al mio pc.

  7. #7
    Utente di HTML.it L'avatar di daneel
    Registrato dal
    Oct 2002
    Messaggi
    229
    Quale linguaggio usano quelli che si divertono a calcolare le prime mille cifre del pi greco, per esempio? Se voglio conoscere il fattoriale di 720, ci sarà un modo per farlo calcolare al mio computer...

  8. #8
    Che tipo di dato devo usare per poter visualizzare factorial(factorial(factorial(3))) (fattoriale di 720)?
    26012189435657951002049032270810436111915218750169 45785727541837850835631156947382240678577958130457 08261992057589224725953664156516205201587379198458 77408325291052446903888118841237643411919510455053 46658616243271940197113909845536727278537099345629 85558671936977407000370043078375899742067678401696 72078462806292290321071616698672605489884455142571 93985499448939594496064045132362140265986193073249 36977047760606768067017649166940303481996188145562 51955925669188308255149429475965372748456246288242 34526597789737740896466553992435928786212515967483 22097602950569669992728467056374713753301924831358 70761254126834158601294475660114554207495899525635 43068288634631084965650682771552996256790845235702 55218622235813001670083452344323682193579318470195 65107297818043541738905607274280485839959197290217 26612291298420516067579036232337699453964191475175 56755769539223380305682530859997744167578435281591 34613403946049012695420288383471013637338244845066 60093348484440711931292537694657354337375724772230 18153403264717753198453734147867432704845798378661 87032574059389242157096959946305575210632032634932 09220738320923356309923267504401701760572026010829 28804233560664308988871029738079757801305604957634 28386830571906622052911748225105366977566030295740 43387983471518552602805333866357139101046336419769 09739743228599421983704697910995630338960467588986 57957111765666700391567481531159439800436253993997 31203066490601325311304719028898491856203766669164 46879112524919375442584589500031156168297430464114 25380748972817233759553806617198014046779356147936 35266265683339509760000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000

    Eccoti il fattoriale, e non scherzo.
    Linguaggio usato per calcolarlo: Java

  9. #9
    quanto fa? :gren:
    ...Terrible warlords, good warlords, and an english song

  10. #10
    Utente di HTML.it L'avatar di daneel
    Registrato dal
    Oct 2002
    Messaggi
    229
    720! già lo conosco, mi interessa un modo per poterlo calcolare, non il suo valore...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.