遞迴非遞迴寫函式

2021-08-16 23:00:08 字數 1552 閱讀 5640

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 挑戰請用非...