LOOP intにintをverliply intに乗算します
-
26-12-2019 - |
質問
次のループを持っています:
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;
}
.
私はどのようにするか知りたいのですか:
新しい乗算int y= z * 4 * 3 * 2 * 1 乗算の結果はコンソール書き込み行にあること:
("value for your loop is " +test.multiply(5));
value for your loop is 120
.
これはfor
ループで行うことができますか、または私は間違っていますか?
解決
あなたが実際に意味するのはあなたが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;
}
. 他のヒント
これは階級:
と呼ばれます。public int Factorial(int num)
{
int factorial = 1;
for (int i = 2; i <= num; i++)
{
factorial *= i;
}
return factorial;
}
.
href="http://ideone.com/lb3ts8" rel="nofollow">デモ
階層的に取得することもできます(これは基本的な演習です):
public int Factorial(int num)
{
if (num <= 1)
return 1;
return num * Factorial(num - 1);
}
.
はい:
public int multiply(int Z)
{
int Y = Z;
for (int i = Z; i > 0; i--)
{
Y *= i;
}
return Y;
}
. ラムダスを用いた因子:
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;
}
. 所属していません StackOverflow