码迷,mamicode.com
首页 > 其他好文 > 详细

[数据结构] 基本概念 PrintN函数实现

时间:2018-02-06 21:42:12      阅读:488      评论:0      收藏:0      [点我收藏+]

标签:过程   tin   占用   参数   gpo   ring   算法   exti   循环   

http://mooc.study.163.com/learn/1000033001?tid=1000044001#/learn/content?type=detail&id=1000112002&cid=1000099015

例2:写程序实现一个函数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)通过递归

#include<stdio.h>
void PrintN(int N);
int main()
{
    int N;
    scanf("%d", &N);
    PrintN(N);
}
void PrintN(int N) {
if(N){
PrintN(N-1);
printf("%d\n",N);
}
return;
}

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

递归:

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

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

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

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

 

(Java递归 )

 1 import java.util.Scanner;
 2  
 3 public class Main {
 4      
 5     public static void printN (long N)
 6     {
 7         if(N!=0)
 8             {printN(N-1);}
 9         System.out.println(N);
10     }
11      
12     public static void main(String[] args) 
13     {
14         Scanner in = new Scanner(System.in);
15         long i =in.nextInt();
16         printN(i);
17     }
18      
19 }

 

[数据结构] 基本概念 PrintN函数实现

标签:过程   tin   占用   参数   gpo   ring   算法   exti   循环   

原文地址:https://www.cnblogs.com/hao-yang1314/p/8424126.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!