>  기사  >  백엔드 개발  >  C#의 팩토리얼

C#의 팩토리얼

PHPz
PHPz원래의
2024-09-03 15:34:30406검색

이번 섹션에서는 C#의 팩토리얼을 자세히 살펴보겠습니다. 계승은 대수학이나 수학 분석과 같은 수학 분야에서 매우 중요한 개념입니다. 느낌표(!)로 표시됩니다. 팩토리얼은 k로 표시되는 양의 정수 k입니다! k보다 작거나 같은 모든 양의 정수의 곱입니다.

k!= k * (k-1) *(k-2) *(k-3) *(k-4) *…….3 *2 * 1.

주어진 숫자의 계승을 계산하는 논리

예를 들어 4의 계승을 계산하려면 다음과 같습니다.

예시 #1

4! = 4 * (4-1) *(4-2) * (4-3)

4! = 4 * 3 * 2 * 1

4! = 24.

그러니까 4의 팩토리얼은 24입니다

예시 #2

6! = 6 * (6-1)* (6-2)* (6-3) * 6-4)* (6-5)

6! = 6*5*4*3*2*1

6! = 720

그래서 6의 계승은 720입니다

마찬가지로 이 기술을 사용하면 모든 양의 정수의 계승을 계산할 수 있습니다. 여기서 중요한 점은 0의 팩토리얼이 1이라는 점입니다.

0! =1.

이에 대해서는 n처럼 설명이 많아요! 여기서 n=0은 숫자가 없는 곱을 의미하며 곱셈 엔터티와 같습니다. {displaystyle {binom {0}{0}}={frac {0!}{0!0!}}=1.}

팩토리얼 함수는 주로 순열과 조합을 계산하는 데 사용되며 이항식에도 사용됩니다. 계승 함수의 도움으로 확률을 계산할 수도 있습니다. 예를 들어 k개 항목을 얼마나 많은 방법으로 배열할 수 있는지를 살펴보겠습니다. 첫 번째 항목에 대해 k개의 선택지가 있습니다. 따라서 이 k개의 선택 항목 각각에 대해 두 번째 항목에 대해 k-1개의 선택 항목이 남아 있으므로(첫 번째 선택이 이미 이루어졌기 때문에) 이제 k(k-1)개의 선택 항목이 있습니다. , 이제 세 번째 선택에는 k(k-1)(k-2)개의 선택이 있고, 하나를 얻을 때까지 계속해서 남은 것이 있습니다. 따라서 전체적으로 k(k-1)(k-2)(k-3)…3..1.

또 다른 실시간 예는 결혼식에 갈 때 어떤 블레이저를 가져갈지 선택하고 싶다고 가정합니다. 그러면 k개의 블레이저가 있고 n개만 포장할 공간이 있다고 가정해 보겠습니다. 그렇다면 k개의 블레이저 k!/(n!.(k-n)!).

컬렉션에서 n개의 블레이저를 사용할 수 있는 방법은 몇 가지입니까?

C#의 Factorial 예

다음은 다양한 방법으로 숫자의 계승을 계산하는 방법을 보여주는 예입니다.

예시 #1

1. 이 예에서는 for 루프를 사용하여 숫자의 계승을 계산합니다.

코드:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Factorial
{
class Program
{
static void Main()
{
int a = 7;
int fact = 1;
for (int x = 1; x <= a; x++)
{
fact *= x;
}
Console.WriteLine(fact);
Console.ReadLine();
}
}
}

이 예제에서는 정수 데이터 유형의 변수가 초기화되고 for 루프를 사용하여 숫자를 계산합니다.

출력:

C#의 팩토리얼

2. 이 예에서는 계승값을 계산하기 위해 사용자가 숫자를 입력할 수 있습니다.

코드:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using  System.Threading.Tasks;
namespace FactorialExample
{
class Program
{
static void Main()
{
Console.WriteLine("Enter the number: ");
int a = int.Parse(Console.ReadLine());
int fact = 1;
for (int x = 1; x <= a; x++)
{
fact *= x;
}
Console.WriteLine(fact);
Console.ReadLine();
}
}
}

출력:

C#의 팩토리얼

예시 #2

1. 이 예에서는 for 루프를 사용하여 숫자의 계승을 계산합니다.

코드:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Factorial
{
class Program
{
static void Main()
{
int a = 10;
int fact = 1;
while (true)
{
Console.Write(a);
if (a == 1)
{
break;
}
Console.Write("*");
fact *= a;
a--;
}
Console.WriteLine(" = {0}", fact);
Console.ReadLine();
}
}
}

출력:

C#의 팩토리얼

2. 이 예에서는 while 루프를 사용하여 숫자의 계승을 계산합니다.

코드:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FactorialExample
{
class Program
{
static void Main()
{
Console.WriteLine("Enter the number: ");
int a = int.Parse(Console.ReadLine());
int fact = 1;
while(true)
{
Console.Write(a);
if(a==1)
{
break;
}
Console.Write("*");
fact *= a;
a--;
}
Console.WriteLine(" = {0}", fact);
Console.ReadLine();
}
}
}

출력:

C#의 팩토리얼

예시 #3

1. 이 예에서는 do-while을 사용하여 숫자의 계승을 계산합니다.

코드:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Factorial
{
class Program
{
static void Main()
{
int a = 6;
int fact = 1;
do
{
fact *= a;
a--;
} while (a > 0);
Console.WriteLine("Factorial = {0}", fact);
Console.ReadLine();
}
}
}

출력:

C#의 팩토리얼

2. 이 예에서는 do-while을 사용하여 숫자의 계승을 계산합니다.

코드:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FactorialExample
{
class Program
{
static void Main()
{
Console.Write("Enter the number: ");
int a = int.Parse(Console.ReadLine());
int fact = 1;
do
{
fact *= a;
a--;
} while (a > 0);
Console.WriteLine("Factorial = {0}", fact);
Console.ReadLine();
}
}
}

출력:

C#의 팩토리얼

예시 #4

1. 이 예에서는 재귀 함수를 사용하여 숫자의 계승을 계산합니다.

코드:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Factorial
{
class Program
{
static void Main()
{
int n= 5;
long fact = Fact(n);
Console.WriteLine("factorial is {1}", n, fact);
Console.ReadKey();
}
private static long Fact(int n)
{
if (n == 0)
{
return 1;
}
return n * Fact(n - 1);
}
}
}

위의 예에서는 재귀를 사용하여 숫자의 계승을 달성합니다. 재귀 뒤에 숨어 있는 아이디어는 작은 경우에 문제를 해결하는 것입니다. 따라서 함수가 루프를 만들고 자신을 호출할 때마다 이를 재귀라고 합니다.

출력:

C#의 팩토리얼

2. 이 예에서는 재귀 함수를 사용하여 숫자의 계승을 계산합니다.

코드:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FactorialExample
{
class Program
{
static void Main()
{
Console.WriteLine("Enter the number");
int n = Convert.ToInt32(Console.ReadLine());
long fact = Fact(n);
Console.WriteLine("factorial is {1}", n, fact);
Console.ReadKey();
}
private static long Fact(int n)
{
if (n == 0)
{
return 1;
}
return n * Fact(n - 1);
}
}
}

출력:

C#의 팩토리얼

결론

그래서 팩토리얼의 개념은 이항식, 순열, 조합과 같은 수학 분야에서 매우 중요하며, 이는 for, while, do-while, function과 같은 여러 방법을 사용하여 모든 숫자의 팩토리얼을 인쇄할 수 있는 방법입니다. 등

위 내용은 C#의 팩토리얼의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:C#의 회문다음 기사:C#의 회문