编写一个函数实现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;
}原文:http://blog.csdn.net/cherry_ermao/article/details/44243301