У меня есть номер 10, я хочу, чтобы умножить каждое число от минус число от 1 это что-то вроде:Как умножить каждое число на минус число на 1 в C#?
10! = 10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1
Тогда результат. Как справиться с этим в C#?
У меня есть номер 10, я хочу, чтобы умножить каждое число от минус число от 1 это что-то вроде:Как умножить каждое число на минус число на 1 в C#?
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;
}
Обратите внимание, что он не будет работать при больших входных значений, так как Teh факторный быстро переполняться целое.
Зачем возвращать результат -1'? –
@PeterSchneider Потому что я не могу напечатать, прежде чем у меня был кофе. :-) Спасибо что подметил это. Починил это. –
@TimSchmelter - Факториал (50) возвращается -3258495067890909184 – fubo
попробовать это -
var res = 1;
for (int num = 10; num > 0; num--)
res += res * (num - 1);
MessageBox.Show(res.ToString());
Хотя то, что сказал ОП, было немного неясным, я бы предположил, что пример показывает, что он хочет, а именно вычислить факториал. В этом случае ваш один лайнер - это только первый шаг. –
OP четко прояснил, как вычислить [факториалы] (http://en.wikipedia.org/wiki/Factorial). Образец говорит все. –
Спасибо, ребята, за исправление меня .. Обновлен ответ. – Rohit
Вы хотите, чтобы вычислить [factorial] (http://stackoverflow.com/questions/16583665/for-loop-to-calculate-factorials). –
'while (mul! = 0) result * = mul -' или такой ... –
Это называется [Факториал] (http://en.wikipedia.org/wiki/Factorial) в Math. И этот Google [поиск] (https://www.google.com.tr/search?q=c%23+calculate+factorial) возвращает результат 134.000. Проверьте это. –