成都网站建设设计

将想法与焦点和您一起共享

C语言子函数阶乘不用递归 c语言数学函数阶乘

用数据结构(C语言)中的栈实现阶乘,不是用递归,请问要怎么写啊?(PS:求能运行出来的代码)

int stack[STACK_SIZE];

元宝山网站建设公司创新互联公司,元宝山网站设计制作,有大型网站制作公司丰富经验。已为元宝山上千提供企业网站建设服务。企业网站搭建\成都外贸网站建设要多少钱,请找那个售后服务好的元宝山做网站的公司定做!

int *pStackTop=stack[0];

bool stackFull,stackEmpty=true;

int* pop()

{

int *ret=NULL;

if(stackEmpty)

retur NULL;

else

{

if(pStackTop==stack[0])

{

ret=pStackTop;

stackEmpty=true;

}

else

{

ret=pStackTop--;

}

}

return ret;

}

void push(int val)

{

if(stackFull)

return;

if(stackEmpty)

{

*pStackTop++=val;

stackEmpty=false;

}

else

{

*++pStackTop=val;

}

if(pStackTop==stack[STACK_SIZE-1])

{

stackFull=true;

}

}

int main(int n)

{

int sum=1;

push(1);

if(n==1)

{

goto end;

}

for(int i=2;i=n;i++)

{

int *s=pop();

push(i*(*s));

}

end:

return *pop();

}

编写递归和非递归求阶乘的函数,用C语言

C语言递归函数和非递归函数求阶乘,参考代码如下:

#includestdio.h

long fun1(int n)

{

if(n=1) return 1;

return fun1(n-1)*n;

}

long fun2(int n)

{

int i;

long m=1;

for(i=1; i=n; ++i)

m*=i;

return m;

}

int main()

{

printf("%ld\n",fun1(9));

printf("%ld\n",fun2(9));

return 0;

}

用c语言的递归和非递归方法求一个数的阶乘问题

#include stdio.h

int rf(int n)

{

return n 0 ? n * rf(n-1) : 1;

}

int f(int n)

{

int k = 1;

while(n 0)

k *= n--;

return k;

}

int main()

{

int n;

scanf("%d", n);

printf("递归:%d\n", rf(n));

printf("非递归:%d\n", f(n));

}


名称栏目:C语言子函数阶乘不用递归 c语言数学函数阶乘
本文链接:http://chengdu.cdxwcx.cn/article/dogjdsp.html