Când folosesc long long în loc de int?
Când o valoare poate depăși aproximativ două miliarde: produse, sume lungi, factoriale, termeni Fibonacci mari. Depășirea nu dă eroare, dă rezultat greșit.
Un int ține valori până pe la 2 miliarde (2·10⁹), iar un long long până pe la 9·10¹⁸. Dacă un rezultat nu încape, nu primești nicio eroare. Primești un număr greșit, adesea negativ.
Când se întâmplă în practică:
- Produse. Două numere de ordinul 10⁵ înmulțite dau 10¹⁰, deci depășesc.
- Sume lungi. O mie de valori de ordinul 10⁷ dau 10¹⁰.
- Factoriale și puteri.
20!este ultimul care încape înlong long. - Fibonacci. Termenul 47 depășește
int, termenul 93 depășeștelong long.
O capcană mai greu de văzut: tipul rezultatului se decide după tipul operanzilor, nu după variabila în care îl pui. long long p = a b; cu a și b de tip int calculează produsul pe int și depășește înainte de atribuire. Scrie 1LL a * b.
Limitele din enunț îți spun ce tip să folosești, așa că citește-le înainte să scrii prima linie. Lecția Tipuri de date are tabelul complet.
Lecția care merge mai departe: Tipuri de date și variabile