标签:调用 第一天 递归 int void 附加 数据结构 方法 PrintN
算法和数据结构
写程序实现一个函数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
标签:调用,第一天,递归,int,void,附加,数据结构,方法,PrintN 来源: https://www.cnblogs.com/Colincora/p/15430691.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。