递归系列

来源:互联网 发布:淘宝助理html源码 编辑:程序博客网 时间:2024/05/05 12:01

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

#include<stdio.h>int for_fun(int n,int k){    int ret = 1;    while(k)    {        ret *= n;        k--;    }    return ret;}//非递归int ret_fun(int n,int k){    int ret = 0;    if(0 == k)        return 1;    else    {        k--;        ret = n * ret_fun(n,k);        return ret;    }    }//递归int main(){    printf("%d\n",for_fun(2,8));    printf("%d\n",ret_fun(2,8));    return 0;}


写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和,例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19

#include<stdio.h>int for_Digitsum(int n){    int ret = 0;    while(n)    {        ret += n % 10;        n = n / 10;    }    return ret;}//非递归int ret_Digitsum(int n){    if(n)        return (ret_Digitsum(n/10) +n%10);    else        return 0;}//递归int main(){    printf("%d\n",for_Digitsum(1729));    printf("%d\n",ret_Digitsum(1729));    return 0;}


0 0
原创粉丝点击