可以參考下面的代碼:
創(chuàng)新互聯(lián)建站服務(wù)項目包括嘉興網(wǎng)站建設(shè)、嘉興網(wǎng)站制作、嘉興網(wǎng)頁制作以及嘉興網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,嘉興網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到嘉興省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
#include stdio.h
void printData(int data)
{
if (data==0)
{
return;
}
printf("%d",data%10);
printData(data/10);
}
int main()
{
int data;
printf("Enter a number:");
scanf("%d",data);
printData(data);
printf("\n");
return 0;
}
擴展資料:
要使用遞歸就必須要具備兩個條件。
遞歸的思想是:為了解決當前問題 F(n),就需要解決問題 F(n–1),而 F(n–1) 的解決依賴于 F(n–2) 的解決……就這樣逐層分解,分解成很多相似的小事件,當最小的事件解決完之后,就能解決高層次的事件。這種“逐層分解,逐層合并”的方式就構(gòu)成了遞歸的思想。
使用遞歸最主要的是要找到遞歸的出口和遞歸的方式。所以遞歸通常分為兩部分:遞歸的方式和遞歸的終止條件。
遞歸的方式,就是指遞歸公式,即對問題的分解,同時也是向遞歸終止條件收斂的規(guī)則。而遞歸的終止條件通常就是得出的最小事件的解。遞歸終止條件的作用就是不讓遞歸無限地進行下去,最后必須要能“?!毕聛?。
綜上所述,使用遞歸必須要滿足的兩個條件就是:要有遞歸公式、要有終止條件。
參考資料來源:百度百科-c程序
遞歸函數(shù):
編程語言中,函數(shù)Func(Type a,……)直接或間接調(diào)用函數(shù)本身,則該函數(shù)稱為遞歸函數(shù)。遞歸函數(shù)不能定義為內(nèi)聯(lián)函數(shù)。
在數(shù)學上,關(guān)于遞歸函數(shù)的定義如下:對于某一函數(shù)f(x),其定義域是集合A,那么若對于A集合中的某一個值X0,其函數(shù)值f(x0)由f(f(x0))決定,那么就稱f(x)為遞歸函數(shù)。
函數(shù)介紹:
在數(shù)理邏輯和計算機科學中,遞歸函數(shù)或μ-遞歸函數(shù)是一類從自然數(shù)到自然數(shù)的函數(shù),它是在某種直覺意義上是"可計算的" 。事實上,在可計算性理論中證明了遞歸函數(shù)精確的是圖靈機的可計算函數(shù)。遞歸函數(shù)有關(guān)于原始遞歸函數(shù),并且它們的歸納定義(見下)建造在原始遞歸函數(shù)之上。但是,不是所有遞歸函數(shù)都是原始遞歸函數(shù) — 最著名的這種函數(shù)是阿克曼函數(shù)。
其他等價的函數(shù)類是λ-遞歸函數(shù)和馬爾可夫算法可計算的函數(shù)。
例子:
//代碼1
void func()
{
//...
if(...)
func();
else
//...
}
條件:
一個含直接或間接調(diào)用本函數(shù)語句的函數(shù)被稱之為遞歸函數(shù),在上面的例子中能夠看出,它必須滿足以下兩個條件:
1) 在每一次調(diào)用自己時,必須是(在某種意義上)更接近于解;
2) 必須有一個終止處理或計算的準則。
梵塔的遞歸函數(shù):
//C
void hanoi(int n,char x,char y,char z)
{
if(n==1)
move(x,1,z);
else
{
hanoi(n-1,x,z,y);
move(x,n,z);
hanoi(n-1,y,x,z);
}
}
//方法一,不需將轉(zhuǎn)換后的字符存儲在字符數(shù)組中
#includestdio.h
void change(int );
int main()
{
int n;
scanf("%d",n);
change(n);
printf("\n");
return 0;
}
void change(int num)
{
if(num==0)return ;
change(num/10);
printf("%d",num%10);
}
//方法二,先將轉(zhuǎn)換后的字符存儲在字符數(shù)組中
#includestdio.h
#define LEN 100
int m=0;
void change(int ,char *);
int main()
{
int n,i;
char a[LEN];
for(i=0;iLEN;i++)
a[i]='\0';
scanf("%d",n);
change(n,a);
printf("%s",a);
printf("\n");
return 0;
}
void change(int num,char *s)
{
if(num==0)return ;
change(num/10,s);
s[m++]=(char)(num%10+'0');
}
答案為B:
int f(int t[],int n)定義了一個int類型的函數(shù),s=f(a,4)是將數(shù)組a傳遞給了t[],4傳遞給了n,遇到f就調(diào)用f定義的函數(shù),直到n=0。最后s=t[3]+t[2]+t[1]+t[0],因為將a傳遞給了t[],所以s=4+3+2+1=10.