C++程序 使用递归打印数组

C++程序 使用递归打印数组

使用递归编写C++程序以打印数组

C++程序 使用递归打印数组

1. 使用静态变量

静态变量具有保留其值的属性,即使它们超出范围也是如此!因此,在其先前范围中静态变量保留其先前值,并且在新范围中不会重新初始化。

语法:

static data_type var_name = var_value; 
// C++程序以递归方式打印数组
  
#include <bits/stdc++.h>
using namespace std;
  
// 递归函数以打印数组
void print_array(int arr[], int size)
{
  
    // 使用静态变量
    static int i;
  
    // 基本情况
    if (i == size) {
        i = 0;
        cout << endl;
        return;
    }
  
    // 打印第i个元素
    cout << arr[i] << " ";
    i++;
  
    // 递归调用
    print_array(arr, size);
}
  
// 驱动程序代码
int main()
{
  
    int arr[] = { 3, 5, 6, 8, 1 };
    int n = sizeof(arr) / sizeof(arr[0]);
  
    print_array(arr, n);
  
    return 0;
}  

输出:

3 5 6 8 1

2. 不使用静态变量

// C++程序以递归方式打印数组
  
#include <bits/stdc++.h>
using namespace std;
  
// 递归函数以打印数组
void print_array(int arr[], int size, int i)
{
  
    // 基本情况
    if (i == size) {
        cout << endl;
        return;
    }
  
    // 打印第i个元素
    cout << arr[i] << " ";
    i++;
  
    // 递归调用
    print_array(arr, size, i);
}
  
// 驱动程序代码
int main()
{
  
    int arr[] = { 3, 5, 6, 8, 1 };
    int n = sizeof(arr) / sizeof(arr[0]);
  
    print_array(arr, n, 0);
  
    return 0;
}  

输出:

3 5 6 8 1

时间复杂度: O(n)

辅助空间: O(1),如果我们将递归调用堆栈视为辅助空间,则为O(n)

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 示例