Ciao, il problema è che
In ogni caso puoi risolvere semplicemente sfruttando un cast esplicito e tenendo conto dell'associatività da sinistra a destra dell'operatore moltiplicazione:
a
, b
e c
sono di tipo int
, quindi il prodotto a*b*c
verrà calcolato utilizzando il suddetto tipo causando quindi un overflow, e solo alla fine avverrà il cast verso long long
, ossia il tipo ritornato dalla funzione, ma a questo punto poco cambia visto che "il danno" è già stato fatto.In ogni caso puoi risolvere semplicemente sfruttando un cast esplicito e tenendo conto dell'associatività da sinistra a destra dell'operatore moltiplicazione:
C++:
#include <iostream>
using namespace std;
long long fun(int a, int b, int c)
{
return (long long)a * b * c;
}
int main()
{
cout << fun(1039, 3749, 8473) << endl;
}