2.編寫乙個函式實現n^k,使用遞迴實現
分析:n的k次=n*n*n*n*……*n(k個n),用遞迴的思想來講,就等於n*(n的(k-1)次方)
#include
#include
#pragma waring (disable:4996)
int fun(int n,int k)
int main ()
3. 寫乙個遞迴函式digitsum(n),輸入乙個非負整數,返回組成它的數字之和,例如,呼叫digitsum(1729),則應該返回1+7+2+9,它的和是19
#include
#include
#pragma waring (disable:4996)
int digitsum(int n) }
int main ()
4. 編寫乙個函式reverse_string(char * string)(遞迴實現)
實現:將引數字串中的字元反向排列。
要求:不能使用c函式庫中
1. #include
#include
#include
#pragma waring (disable:4996)
void reverse_string(const char * const string)
int main (void)
5.遞迴和非遞迴分別實現strlen
1. #include
#include
#pragma waring (disable:4996)
//.遞迴實現strlen
int my_strlen(const char *p)
int main ()
2.#include
#include
#pragma waring (disable:4996)
//.非遞迴實現strlen
int my_strlen(const char *p)
return count;
} int main ()
6.遞迴和非遞迴分別實現求n的階乘
1.#include
#include
#pragma waring (disable:4996)
//用遞迴實現求n的階乘
int fun(int n)
int main ()
2. #include
#include
#pragma waring (disable:4996)
//用非遞迴實現求n的階乘
int fun(int n)
return sum;
} } int main ()
7.遞迴方式實現列印乙個整數的每一位
#include
#include
#pragma waring (disable:4996)
//遞迴方式實現列印乙個整數的每一位
void fun(int n)
printf("%d\n",n%10);
} int main ()
遞迴 非遞迴
遞迴演算法實際上是一種分而治之的方法,它把複雜問題分解為簡單問題來求解。對於某些複雜問題 例如 hanio塔問題 遞迴演算法是一種自然且合乎邏輯的解決問題的方式,但是遞迴演算法的執行效率通常比較差。因此 在求解某些問題時,常採用遞迴演算法來分析問題,用非遞迴演算法來求解問題 另外,有些程式語言不支援...
Akm函式遞迴與非遞迴解法
如下是akm函式的遞迴演算法,根據akm函式的遞迴定義就可以得出,請參考 int akmrecur int m,int n 非遞迴演算法沒有遞迴演算法簡單,你先計算一下akm 2,1 多計算幾遍 我建議2遍,並在計算的過程中,分析一下計算過程有什麼規律 如果你計算完了,就可以看下面的分析了 請不要懶...
遞迴轉非遞迴
題目描述 給定乙個列表,該列表中的每個要素要麼是個列表,要麼是整數。將其變成乙個只包含整數的簡單列表。如果給定的列表中的要素本身也是乙個列表,那麼它也可以包含列表。您在真實的面試中是否遇到過這個題?樣例給定 1,2,1,2 返回 1,2,1,2 給定 4,3,2,1 返回 4,3,2,1 挑戰請用非...