Boucle de multiplier int à bas int
-
26-12-2019 - |
Question
J'ai la boucle suivante:
public int multiply(int Z)
{
//Z=5
for (int i = 1; i <= Z; i++)
{
int Y=Z*i;
return Y;
//i wanna Y multiply x*4*3*2*1 all loops in one result
}
return Z;
}
Ce que je voudrais savoir comment faire:
Créer un nouveau multiplier int Y =Z*4*3*2*1 Résultat de multiplier serait Dans la Console d'Écriture en Ligne:
("value for your loop is " +test.multiply(5));
value for your loop is 120
Cela peut-il être fait par un for
boucle ou je me trompe?
La solution
Ce que je pense que vous avez réellement dire, c'est que vous voulez calculer le factoriel de Z.
public int Factorial(int Z)
{
if (Z < 0) then return 0;
int res = 1;
for (int Y = 1; Y <= Z; Y++)
{
res *= Y;
}
return res;
}
Autres conseils
Ceci est appelé factorielle:
public int Factorial(int num)
{
int factorial = 1;
for (int i = 2; i <= num; i++)
{
factorial *= i;
}
return factorial;
}
Vous pouvez également obtenir factorielle récursive (c'est l'exercice de base):
public int Factorial(int num)
{
if (num <= 1)
return 1;
return num * Factorial(num - 1);
}
Oui:
public int multiply(int Z)
{
int Y = Z;
for (int i = Z; i > 0; i--)
{
Y *= i;
}
return Y;
}
Factorielle à l'aide de lambda:
Func<int, int> factorial = null;
factorial = x => x <= 1 ? 1 : x * factorial(x-1);
var result = factorial(10);
:-)
public int multiply(int Z)
{
int result = Z;
for (int i = 1; i <= Z; i++)
{
int Z*=i;
}
return Z;
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow