我有一個數字10,我想乘以每個數減去1的數字它就像這樣:如何在C#中將每個數字乘以1減去1?
10! = 10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1
然後結果。 如何在C#中處理這個問題?
我有一個數字10,我想乘以每個數減去1的數字它就像這樣:如何在C#中將每個數字乘以1減去1?
10! = 10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1
然後結果。 如何在C#中處理這個問題?
這是一個簡單的階乘函數。您可以使用遞歸方法:
unsigned int Factorial(unsigned int val)
{
return (1 == val)? 1 : Factorial(val - 1);
}
或迭代方法:
unsigned int Factorial(unsigned int val)
{
unsigned int result = val;
while(1 < --val)
{
result *= val;
}
return result;
}
注意,它不會對大的輸入值的工作,因爲德因子會很快溢出的整數。
爲什麼'返回結果-1'? – 2015-01-21 09:10:18
@PeterSchneider因爲在喝咖啡之前我無法打字。 :-) 感謝您指出了這一點。修復。 – 2015-01-21 09:12:05
@TimSchmelter - 析因(50)返回-3258495067890909184 – fubo 2015-01-21 09:38:30
試試這個 -
var res = 1;
for (int num = 10; num > 0; num--)
res += res * (num - 1);
MessageBox.Show(res.ToString());
儘管OP說的有點不清楚,我會假設這個例子顯示了他想要的東西,即計算階乘。在這種情況下,你的一個班輪只是第一步。 – 2015-01-21 09:15:33
OP問清楚如何計算[階乘](http://en.wikipedia.org/wiki/Factorial)。樣本說明了一切。 – 2015-01-21 09:21:02
謝謝你們糾正我..更新了答案。 – Rohit 2015-01-21 09:34:18
你想共同計算[因子](http://stackoverflow.com/questions/16583665/for-loop-to-calculate-factorials)。 – 2015-01-21 09:04:12
'while(mul!= 0)result * = mul - 'or such ... – 2015-01-21 09:04:26
在Math中稱爲[Factorial](http://en.wikipedia.org/wiki/Factorial)。此Google [搜索](https://www.google.com.tr/search?q=c%23+calculate+factorial)返回134.000結果。一探究竟。 – 2015-01-21 09:05:41