1.递归和非递归分别实现求第n个斐波那契数。 2.编写一个函数实现n^k,使用递归实现 3. 写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和

1.递归和非递归分别实现求第n个斐波那契数

#include <stdio.h>

#include <stdlib.h>

int fib1(int n){

       int c = 0;

       int a = 1;

       int b = 1;

       if (n <= 2)       {

              return 1;

       }

       while (n > 2)       {

              c = a + b;

              a = b;

              b = c;

              n--;

       }

       return c;

}

int fib2(int n){

       if (n <= 2)

              return 1;

       else

              return fib2(n - 1) + fib2(n - 2);

}

int main(){

       int n = 20;

       printf("%d\n", fib1(n));

       printf("%d\n", fib2(n));

system("pause");

return 0;

}

 2.编写一个函数实现n^k,使用递归实现 

#include <stdio.h>

#include <stdlib.h>

int fun(int n, int k)

{

    if (k == 0)

    {

         return 1;

    }

    return n * fun(n, k - 1);

}

int main()

{

    int n = 7;

    int k = 3;

    printf("n^k=%d\n", fun(n, k));

system("pause");

return 0;

}

3. 写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和

#include <stdio.h>

#include <stdlib.h>

int DigitSum(int n){

    if (n == 0) {

         return 0;

    }

    return n % 10 + fun(n / 10);

}

int main(){

    int n = 1729;

    printf("%d\n", DigitSum(n));  

system("pause");

return 0;

}

发布了42 篇原创文章 · 获赞 0 · 访问量 1456

猜你喜欢

转载自blog.csdn.net/HUAERBUSHI521/article/details/103173196