现在的位置: 首页 > 综合 > 正文

递归复杂度测试

2017年11月22日 ⁄ 综合 ⁄ 共 513字 ⁄ 字号 评论关闭
#include<stdio.h>
#include<stdlib.h>
void printN1(int n)
{
	for(int i=1;i<=n;i++)
	printf("%d\n",i);
}
void printN2(int n)
{
	if(n)
	{
	printN2(n-1);
	printf("%d\n",n);	
	}
	return;
}
int main()
{
    int n;
    scanf("%d",&n);
    printN1(n);
//    printN2(n); 
	return 0;
}

 

  用上面的代码是用for循环输出1-100000个数,虽然时间长但是还是能输出的。

如果使用递归时输出1-100000时

#include<stdio.h>
#include<stdlib.h>
void printN1(int n)
{
	for(int i=1;i<=n;i++)
	printf("%d\n",i);
}
void printN2(int n)
{
	if(n)
	{
	printN2(n-1);
	printf("%d\n",n);	
	}
	return;
}
int main()
{
    int n;
    scanf("%d",&n);
//    printN1(n);
    printN2(n); 
	return 0;
}

 

  递归占用了很大的空间,所以程序会崩溃。

抱歉!评论已关闭.