Вычисление факториала в c
Автор RUSic задал вопрос в разделе Другие языки и технологии
как в C# посчитать факториал и получил лучший ответ
Ответ от Илья Павлов[гуру]
Полагаю, что с помощью такой функции:
=======================
public static double Factorial(int n) {
double res = 1;
for(int i = 2; i <= n; i++) {
res *= i;
}
return res;
}
=======================
Синтаксическую правильность не гарантирую, поскольку код пишу в этом окошке.
Теперь ее можно использовать, например, так: double fact = Factorial(10);
Ответ от Дима[гуру]
static double factorial(double x) { return x <= 1? 1 : x * factorial(x - 1); } double X = factorial(N) / factorial(K - N);
static double factorial(double x) { return x <= 1? 1 : x * factorial(x - 1); } double X = factorial(N) / factorial(K - N);
Ответ от Space monkey[гуру]
реализуй свою функцию факториала, это же элементарно, не забудь только проверить входной параметр на то, что он больше нуля. Также при достаточно больших N разрядность long переполнится. это случится при N=21 long res =1; for(int i = 1; i<=n; i++){ res*=i; } return res; Но в вашем случае можно упростить формулу, если k>0 и n >0, нужно считать одной функцией, что будет быстрее и не так подвержено переполнению long res =1; for(int i = k; i<=n; i++){ res*=i; } return res;
реализуй свою функцию факториала, это же элементарно, не забудь только проверить входной параметр на то, что он больше нуля. Также при достаточно больших N разрядность long переполнится. это случится при N=21 long res =1; for(int i = 1; i<=n; i++){ res*=i; } return res; Но в вашем случае можно упростить формулу, если k>0 и n >0, нужно считать одной функцией, что будет быстрее и не так подвержено переполнению long res =1; for(int i = k; i<=n; i++){ res*=i; } return res;
Ответ от Влад Охрименко[новичек]
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ConsoleApplication2{ class Program { static void Main(string[] args) { int c1 = 4; int c2 = 1; Console.WriteLine("Factorial : {0}", c1); do { c2 = c2 * c1; c1 = c1 - 1; } while (c1 > 1); Console.WriteLine("{0}", c2); Console.ReadKey(); } }}
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ConsoleApplication2{ class Program { static void Main(string[] args) { int c1 = 4; int c2 = 1; Console.WriteLine("Factorial : {0}", c1); do { c2 = c2 * c1; c1 = c1 - 1; } while (c1 > 1); Console.WriteLine("{0}", c2); Console.ReadKey(); } }}
Ответ от 22 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: как в C# посчитать факториал