Calcul de puissance sans math.Pow
Bonjour,
J'ai besoin de faire un calcul de puissance qui n'est jamais négatif avec n'importe qu'elle nombre. Au départ j'ai utilisé Math.Pow mais le souci c'est que des fois j'ai une valeur qui est égale à 0.
Par exemple ce calcul fonctionne ;
Code:
1 2
|
UInt64 number = (UInt64) Math.Pow((double)4, (double)10); |
Ma fonction me retourne bien 1048576. Mais le problème si je change les nombres comme l'exemple ci-dessous :
Code:
1 2
|
UInt64 number = (UInt64) Math.Pow((double)16, (double)24); |
La variable number est égale à 0. Un résultat en double ne convient pas car j'ai une valeur égale à 1.2116574790945107E+22 et j'ai vraiment besoin que le résultat soit tout en chiffre comme dans UInt64 comme avec 4^10 = 1048576.
Pourriez-vous m'aider à écrire un petit algo qui calcule n'importe quelle puissance avec n'importe nombre dans une variable. J'ai beau essayé j'y arrive pas.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| internal UInt64 power()
{
ulong value = 4; // (ulong)int.Parse(Console.ReadLine());
ulong result = value;
int power = 10; //int.Parse(Console.ReadLine());
for (int i = 0; i < power-1; i++)
{
result *= (value*value);
}
return result;
} |
Merci