Fai attenzione quando usi la funzione pow
per calcolare potenze tra numeri interi, perché la funzione lavora con numeri in floating point. Vedi questa domanda sul sito stackoverflow.
In pratica devi tenere conto che pow
convertirà al tipo double
gli argomenti passati, e restituirà un double
. Facendo un cast a long int
staresti semplicemente troncando la parte decimale (e una cosa tipo 99.999999973
diventerebbe 99
, non 100
).
Prova a scrivere a mano una funzione int my_pow(int, int)