int stack[STACK_SIZE];
元寶山網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,元寶山網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為元寶山上千提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個售后服務(wù)好的元寶山做網(wǎng)站的公司定做!
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語言遞歸函數(shù)和非遞歸函數(shù)求階乘,參考代碼如下:
#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;
}
#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));
}