Funzione prodotto

di thomas99 il
10 risposte
Salve, come posso realizzare una funzione prodotto che sia capace di restituire un risultato che vada oltre i 300 miliardi?
Ho provato ad assegnare alla variabile prodotto il tipo unsigned long, però questo può solo contenere cifre che vanno da 0 a 4 miliardi.

10 Risposte

  • Devi usare un intero a 64 bit. Un unsigned a 64 bit va da 0 a 18.446.744.073.709.551.615
  • In alternativa dovrebbe esistere anche il long long int, che dovrebbe definire un nuovo tipo a 64bit
  • E' quello che gli ho suggerito ... senza il segno, quindi un unsigned long long
  • oregon ha scritto:


    E' quello che gli ho suggerito ... senza il segno, quindi un unsigned long long
    Capito, non me n'ero accorto
  • Ho provato a stampare utilizzando lo specificatore di formato %llu, e ho ricevuto il seguente warning:
    "Unknown conversion type character 'l' in format [-Wformat=]"
    Serve una libreria apposita per le variabili a 64 bit?
  • thomas99 ha scritto:


    Ho provato a stampare utilizzando lo specificatore di formato %llu, e ho ricevuto il seguente warning:
    "Unknown conversion type character 'l' in format [-Wformat=]"
    Serve una libreria apposita per le variabili a 64 bit?
    No, cioè non è necessario, ti abbiamo già detto che puoi usare un long long int, comunque puoi anche usare una libreria esterna se preferisci
  • Ma infatti io ho utilizzato unsigned long long int, però ricevo un warning nella stampa
  • thomas99 ha scritto:


    Ma infatti io ho utilizzato unsigned long long int, però ricevo un warning nella stampa
    ah scusami non avevo capito, penso dipendi dal compilatore (anche se non ci metto la mano nel fuoco, magari oregon ti saprà dire di più) comunque in alternativa puoi usare una libreria per la gestione degli interi
  • Ho risolto usando lo specificatore di formato %I64u , %llu invece a quanto pare si usa su Linux.
    Grazie.
  • thomas99 ha scritto:


    Ho risolto usando lo specificatore di formato %I64u , %llu invece a quanto pare si usa su Linux.
    Grazie.
    perfetto, figurati
Devi accedere o registrarti per scrivere nel forum
10 risposte