首页 > 后端开发 > C#.Net教程 > C# 中的阶乘

C# 中的阶乘

PHPz
发布: 2024-09-03 15:34:30
原创
475 人浏览过

在本节中,我们将详细了解 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.

对此有很多解释,例如 for 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 件西装外套中的 n 件西装外套 k!/(n!.(k-n)!).

C# 中的阶乘示例

下面的示例展示了如何以不同的方式计算任何数字的阶乘,

示例#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中文网其他相关文章!

相关标签:
来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板