C#利用for,do-while和另一种算法求1!+2!+3!+......+10!
时间: 2024-04-15 18:22:46 浏览: 13
C#可以利用for循环、do-while循环以及另一种算法来求1!+2!+3!+......+10!。下面是三种不同的实现方式:
1. 使用for循环:
```csharp
int sum = 0;
int factorial = 1;
for (int i = 1; i <= 10; i++)
{
factorial *= i;
sum += factorial;
}
```
2. 使用do-while循环:
```csharp
int sum = 0;
int factorial = 1;
int i = 1;
do
{
factorial *= i;
sum += factorial;
i++;
} while (i <= 10);
```
3. 使用另一种算法,可以通过递归来计算阶乘:
```csharp
int sum = 0;
for (int i = 1; i <= 10; i++)
{
sum += Factorial(i);
}
int Factorial(int n)
{
if (n == 0)
return 1;
else
return n * Factorial(n - 1);
}
```
相关问题
C#利用三种算法求1!+2!+3!+......+10!
C#可以利用三种算法来求1!+2!+3!+......+10!,分别是迭代算法、递归算法和动态规划算法。
1. 迭代算法:
迭代算法是通过循环来计算阶乘并累加的方法。具体步骤如下:
```csharp
int sum = 0;
int factorial = 1;
for (int i = 1; i <= 10; i++)
{
factorial *= i;
sum += factorial;
}
Console.WriteLine("结果为:" + sum);
```
2. 递归算法:
递归算法是通过函数自身调用来计算阶乘并累加的方法。具体步骤如下:
```csharp
int SumFactorial(int n)
{
if (n == 1)
return 1;
else
return n * SumFactorial(n - 1);
}
int sum = 0;
for (int i = 1; i <= 10; i++)
{
sum += SumFactorial(i);
}
Console.WriteLine("结果为:" + sum);
```
3. 动态规划算法:
动态规划算法是通过保存中间结果来避免重复计算的方法。具体步骤如下:
```csharp
int[] dp = new int[11];
dp[1] = 1;
int sum = dp[1];
for (int i = 2; i <= 10; i++)
{
dp[i] = dp[i - 1] * i;
sum += dp[i];
}
Console.WriteLine("结果为:" + sum);
```
c# 控制台 题目:求 1+2!+3!+...+20!的和
以下是使用C#编写的控制台程序,用于求解1+2!+3!+...+20!的和:
```csharp
using System;
namespace ConsoleApp
{
class Program
{
static void Main(string[] args)
{
int n = 20;
long sum = 0;
long factorial = 1;
for (int i = 1; i <= n; i++)
{
factorial *= i;
sum += factorial;
}
Console.WriteLine("1+2!+3!+...+20!的和为:" + sum);
}
}
}
```
运行以上程序,将会输出1+2!+3!+...+20!的和。