C#输入整数n(n大于等于0),分别利用for循环、while循环、do…while循环求n!
时间: 2024-09-30 22:04:15 浏览: 33
输入两个正整数m和n,求其最大公因数和最小公倍数
在C#中,你可以使用三种不同的循环结构来计算阶乘(n!)。这里我会展示如何分别使用for循环、while循环和do...while循环:
1. **For循环**:
```csharp
int n;
Console.Write("请输入一个非负整数n: ");
n = Convert.ToInt32(Console.ReadLine());
long factorial = 1; // 使用长整型防止溢出
for (int i = 1; i <= n; i++)
{
factorial *= i;
}
Console.WriteLine($"n! 的值是: {factorial}");
```
2. **While循环**:
```csharp
int n;
Console.Write("请输入一个非负整数n: ");
n = Convert.ToInt32(Console.ReadLine());
long factorial = 1;
while (n > 0)
{
factorial *= n;
n--;
}
Console.WriteLine($"n! 的值是: {factorial}");
```
3. **Do...While循环**:
```csharp
int n;
Console.Write("请输入一个非负整数n: ");
n = Convert.ToInt32(Console.ReadLine());
long factorial = 1;
bool continueLoop = true;
do
{
factorial *= n;
n--;
} while (continueLoop && n > 0);
Console.WriteLine($"n! 的值是: {factorial}");
```
注意,在计算阶乘过程中,如果n很大,可能会导致数值超出`int`类型的范围,因此这里使用了`long`类型。此外,由于do...while循环会先执行一次再检查条件,所以在这种循环中需要一个初始条件使得循环至少执行一次。
阅读全文