#includestdio.h
創(chuàng)新互聯(lián)主營興賓網站建設的網絡公司,主營網站建設方案,app軟件定制開發(fā),興賓h5小程序設計搭建,興賓網站營銷推廣歡迎興賓等地區(qū)企業(yè)咨詢
double power(double x,int n)
{if(n==0)return 1.0;
else if(n0)return x*power(x,n-1);
else return power(x,n+1)/x;
}
int main()
{double x;
int n;
scanf("%lf%d",x,n);
printf("%lf\n",power(x,n));
return 0;
}
/*x^n的值必須小于32767,否則輸出的就是負數(shù)。因為,int只有這么大,正常的pow函數(shù)應該是float型或是double型,參數(shù)也應是float或是double型。*/
#include?stdio.h
int?power(int?x,int?n)
{
if?(n1)
{
? ?return?x*power(x,n-1);
}
else
{
? ?if?(n0)
? ? ? ?return?x;
? ?else
? ? ? ? return?1;
}
}
void?main()
{
int?x,n;
printf("input?x,n:");
scanf("%d%d",x,n);
printf("%d",power(x,n));
getch();
clrscr();
}
設置四個變量左邊界l,右邊界r,上邊界u,下邊界d。每調用一次遞歸在二維數(shù)組中存一層數(shù)據(jù),然后把l加1,r減1,u加1,d減1。lr為遞歸出口。代碼如下:
#include stdio.h
int b[100][100];
void fz(int l,int r,int u,int d,int v,int n)
{
int x,y,i,j,k,m;
if(lr)
for (x=0;xn;x++)
{
for (y=0;yn;y++)
printf("%4d",b[x][y]);
printf("\n");
}
while(l=r)
{
for (i=l;i=r;i++) b[u][i]=v++;
for (k=u+1;kd;k++) b[k][r]=v++;
for (j=r;jl;j--) b[d][j]=v++;
for (m=d;mu;m--) b[m][l]=v++;
return fz(l+1,r-1,u+1,d-1,v,n);
}
}
int main()
{
int n;
scanf("%d",n);
fz(0,n-1,0,n-1,1,n);
return 0;
}
int f(int x,int n)
{
if (n==0)
return 1;
else
return x*f(n-1);
}
表示的是求(整數(shù))x的(非負整數(shù))n次冪
大致情況就是這樣,我寫的這個適用范圍比較窄。
#includestdio.h
int
power(int
x,int
n)
{
if(n
==
0)
//任何數(shù)的0次方都是1
return
0;
else
if(n
==1)
//如果是1次方
則返回本來的值
return
x;
else
//否則遞歸循環(huán)
return
x*power(x,n-1);
}
main()
{
printf("%d
",power(3,3));
printf("%d
",power(4,2));
getchar();
return
0;
}
本文題目:c語言冪函數(shù)遞歸,c語言遞歸函數(shù)的概念及用法
本文URL:http://chinadenli.net/article44/heiohe.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供品牌網站制作、網站營銷、Google、App設計、網站導航、網站策劃
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)