例1写程序实现一个函数PrintN,使得传入一个正整数为N的参数后,能顺序打印从1到N的全部正整数。 分别用递归算法和循环迭代法
时间: 2024-09-08 16:04:11 浏览: 87
当然,这里有两个版本的`PrintN`函数,一个是递归版本,另一个是循环迭代版本。
首先是递归版本的`PrintN`函数:
```csharp
using System;
class Program
{
static void Main(string[] args)
{
int N = 10; // 假设我们要打印到10
Console.WriteLine("递归方法打印从1到N:");
PrintNRecursive(N);
}
static void PrintNRecursive(int n)
{
if (n > 0)
{
PrintNRecursive(n - 1); // 递归调用,递减n
Console.WriteLine(n); // 打印当前n的值
}
}
}
```
递归函数`PrintNRecursive`通过递归调用自身来打印从1到n的数字。当`n`减少到0以下时,递归停止。
接下来是循环迭代版本的`PrintN`函数:
```csharp
using System;
class Program
{
static void Main(string[] args)
{
int N = 10; // 假设我们要打印到10
Console.WriteLine("循环迭代方法打印从1到N:");
PrintNIterative(N);
}
static void PrintNIterative(int n)
{
for (int i = 1; i <= n; i++)
{
Console.WriteLine(i); // 循环打印从1到n的值
}
}
}
```
循环迭代函数`PrintNIterative`使用一个for循环来遍历从1到n的每个数字,并打印它们。
两个方法都能有效地完成任务,但是递归版本可能会在深度递归时遇到堆栈溢出的问题,尤其是当N的值非常大时。而循环迭代版本则不会有这种风险,并且对于这种类型的简单任务来说通常会更加高效。
阅读全文