递归消除 [英] Recursion elimination

查看:129
本文介绍了递归消除的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图将其转换为非递归版本,但没有

运气......


#include< stdio.h>

无效倒计时(int p)

{

int x;


x = p - 1 ;


if(p!= 0)

{

printf("%d \ n",p) ;

倒计时(x);

}

}

int main()

{

int i = 10;


倒计时(i);


返回0;

}


解决方案

Lorenzo Villari写道:

我试图把它变成一个不递归的版本,但没有运气......

#include< stdio.h>

void countdown(int p)
{
int x;

x = p - 1;

if(p!= 0)
{
printf("%d \ n",p);
倒计时(x);
}
}

INT main()
{i / 10;

倒计时(i);

返回0;
}




#include< stdio.h>

void countdown(int upper_limit);


int main( )

{

int i = 10;

倒计时(i);


返回0 ;

}


无效倒计时(int upper_limit)

{

int i;


for(i = upper_limit;我> 0;我 - )

printf("%d \ n",i);

{


--Steve



blockquote>



" Lorenzo Villari" < VL **** @ tiscali.it>在消息中写道

新闻:lW ********************** @ twister2.libero.it ..

我试图将其转换为非递归版本,但没有运气......

#include< stdio.h>

void countdown(int p)
{x / p> 1;

if(p!= 0) {
printf("%d \ n",p);
倒计时(x);
}
}

int main( )
{i / 10;

倒计时(i);

返回0;
}




阅读for-loop主题

int main()

{

int i;


for(i = 9; i!= 0; i--)

{

printf("%d \ n",i);

}


返回0;

}

-

Jeff




" Jeff" <无***** @ notexist.com>在消息中写道

news:bj *********** @ news.hgc.com.hk ...


" Lorenzo Villari < VL **** @ tiscali.it>在消息中写道
新闻:lW ********************** @ twister2.libero.it ..。

I 我试图将其转换为非递归版本,但没有运气......

#include< stdio.h>

void countdown(int p)
{x / p> 1;

if(p!= 0)
{ /> printf("%d \ n",p);
倒计时(x);
}
}

int main()
{
int i = 10;

倒计时(i);

返回0;
}

阅读主题为for-loop

int main()
{
int i;

for(i = 9; i!= 0 ; i--)
{/> printf("%d \ n",i);
}




哦,它应该是for(i = 10; i!= 0; i - )


抱歉。

返回0;
}

-
杰夫



I''ve tried to transform this into a not recursive version but without
luck...

#include <stdio.h>
void countdown(int p)
{
int x;

x = p - 1;

if(p != 0)
{
printf("%d\n", p);
countdown(x);
}
}
int main()
{
int i = 10;

countdown(i);

return 0;
}



解决方案

Lorenzo Villari wrote:

I''ve tried to transform this into a not recursive version but without
luck...

#include <stdio.h>
void countdown(int p)
{
int x;

x = p - 1;

if(p != 0)
{
printf("%d\n", p);
countdown(x);
}
}
int main()
{
int i = 10;

countdown(i);

return 0;
}



#include <stdio.h>
void countdown(int upper_limit);

int main()
{
int i = 10;
countdown(i);

return 0;
}

void countdown(int upper_limit)
{
int i;

for (i = upper_limit; i > 0; i--)
printf("%d\n", i);
{

--Steve





"Lorenzo Villari" <vl****@tiscali.it> wrote in message
news:lW**********************@twister2.libero.it.. .

I''ve tried to transform this into a not recursive version but without
luck...

#include <stdio.h>
void countdown(int p)
{
int x;

x = p - 1;

if(p != 0)
{
printf("%d\n", p);
countdown(x);
}
}
int main()
{
int i = 10;

countdown(i);

return 0;
}



Read the topic of "for-loop"

int main()
{
int i;

for(i=9; i!=0; i--)
{
printf("%d\n", i);
}

return 0;
}
--
Jeff



"Jeff" <no*****@notexist.com> wrote in message
news:bj***********@news.hgc.com.hk...


"Lorenzo Villari" <vl****@tiscali.it> wrote in message
news:lW**********************@twister2.libero.it.. .

I''ve tried to transform this into a not recursive version but without
luck...

#include <stdio.h>
void countdown(int p)
{
int x;

x = p - 1;

if(p != 0)
{
printf("%d\n", p);
countdown(x);
}
}
int main()
{
int i = 10;

countdown(i);

return 0;
}
Read the topic of "for-loop"

int main()
{
int i;

for(i=9; i!=0; i--)
{
printf("%d\n", i);
}



Oh, it should be "for(i=10;i!=0;i--)"

Sorry.
return 0;
}
--
Jeff



这篇关于递归消除的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆