递归

递归方式实现打印一个整数的每一位

void print(int n)
{
    if (n < 10)
        printf("%d ", n);
    else
    {
        print(n /10);
        printf("%d ",n%10);
    }

}

int main()
{
    print(3456);
    printf("\n");
    return 0;
}

运行结果:
递归输出.png

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

int DigitSum(int n)
{
    if (n < 10)
        return n;
    else
        return n%10 + DigitSum(n/10);
}
int main()
{
    printf("%d\n",DigitSum(1729));
    return 0;
}

运行结果:
递归digitsum.png

递归实现n^k

int test(int n,int k)
{
    if (k == 0)
        return 1;
    else 
        return n*test(n, k-1);
    
}
int main()
{
    printf("%d\n",test(2,4));
    return 0;
}

运行结果:
递归n^k.png

你可能感兴趣的:(递归)