玩轉C語言(遞迴)

2021-09-14 00:40:48 字數 1919 閱讀 3132

1.遞迴和非遞迴分別實現求第n個斐波那契數。

#define _crt_secure_no_warnings

#include#includeint fib(int n)

else

}int main()

//斐波那契數列(未遞迴)

#define _crt_secure_no_warnings

#include#includeint fib(int n)

for (int i = 3; i <= n; i++)

return cur;

}int main()

2.編寫乙個函式實現n^k,使用遞迴實現

//遞迴實現n^k

#define _crt_secure_no_warnings

#include#includeint cifang(int x, int y)

else if (y == 1)

else

}int main()

寫乙個遞迴函式digitsum(n),輸入乙個非負整數,返回組成它的數字之和,

例如,呼叫digitsum(1729),則應該返回1+7+2+9,它的和是19

#define _crt_secure_no_warnings

#include#includeint digitsum(int x)

else

}int main()

int result = digitsum(n);

printf("result=%d", result);

return 0;

system("pause");

}

編寫乙個函式 reverse_string(char * string)(遞迴實現)

實現:將引數字串中的字元反向排列。

要求:不能使用c函式庫中的字串操作函式。

#include #include void reverse_string(char *string)

printf("%c", *(string - 1));

}int main()

5.遞迴和非遞迴分別實現strlen

//遞迴和非遞迴分別實現strlen

#include#include//非遞迴實現

int strlen(char str)

return size;

}//遞迴實現

int strlen2(char str)

return 1 + strlen2(str + 1);

}int main()

6.遞迴和非遞迴分別實現求n的階乘

//遞迴求n的階乘

#define _crt_secure_no_warnings

#include#includeint factorial(int x)

else

}int main()

//非遞迴求n的階乘

#define _crt_secure_no_warnings

#include#includeint factorial(int x)

return result;

}int main()

7.遞迴方式實現列印乙個整數的每一位

//遞迴方式實現列印乙個整數的每一位 

#define _crt_secure_no_warnings

#include#includeint print(int x)

printf("%d ", x % 10);

}int main()

玩轉C語言函式(1)

1.實現乙個函式,列印乘法口訣表,口訣表的行數和列數自己指定,輸入9,輸出99口訣表,輸入12,輸出1212的乘法口訣表。列印任意乘法口訣表 define crt secure no warnings include includevoid chengfakoujie int x printf n ...

c語言 遞迴

遞迴 電影 盜夢空間 定義 直接或者間接的呼叫自身的函式。兩個特性 存在限制條件,當滿足條件時遞迴不再繼續 每次遞迴之後越來越接近限制條件 缺點 涉及執行開銷,引數必須壓到堆疊,為區域性變數分配記憶體空間。1.將二進位制整數轉換為字元 1 引數值除以10 2 列印quotient當前值的各位數字 3...

遞迴與尾遞迴 (C語言)

在電腦科學領域中,遞迴式通過遞迴函式來實現的。程式呼叫自身的程式設計技巧稱為遞迴 recursion 乙個過程或函式在其定義或說明中有直接或間接呼叫自身的一種方法,它通常把乙個大型複雜的問題層層轉化為乙個與原問題相似的規模較小的問題來求解,遞迴策略只需少量的程式就可描述出解題過程所需要的多次重複計算...