《数据结构》第一天附加内容

算法和数据结构

写程序实现一个函数PrintN,使得传入一个正整数为N的参数后,能顺序打印从一到N的全部正整数。

(1)通过循环

复制代码
 1 #include<stdio.h>
 2  void PrintN(int N);
 3   int main()
 4  {
 5      int N;
 6      scanf("%d", &N);
 7      PrintN(N);
 8  }
 9  void PrintN(int N) {
10      int i;
11  for(i=1;i<=N;i++){
12 printf("%d\n",i);
13  }
14  return;
15 
16  
17  }
复制代码

 

(2)通过递归

复制代码
 1 #include<stdio.h>
 2 void PrintN(int N);
 3 int main()
 4 {
 5     int N;
 6     scanf("%d", &N);
 7     PrintN(N);
 8 }
 9 void PrintN(int N) {
10 if(N){
11 PrintN(N-1);
12 printf("%d\n",N);
13 }
14 return;
15 }
复制代码

 

让他们分别进行十万级别的运算 

递归方法会出现以下问题

出现这种问题的主要原因是: 

在做打印运算时,对递归100000,系统罢工---

递归:

一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法;

递归函数就是直接或间接调用自身的函数,也就是自身调用自己

递归算法效率较低,占用栈空间较大,容易发生栈溢出.

递归分为2种,直接递归和间接递归。
直接递归,比如方法A内部调用方法A自身
间接递归,比如方法A内部调用方法B,方法B内部调用方法C,方法C内部调用方法A

posted @   Colin_Cora  阅读(120)  评论(1编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示