用递归实现0~n的和
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int fun(int n)
{
if(n==0)
return 0;
else
{
return n+fun(n-1);
}
}
int main(int argc, const char *argv[])
{
int n;
printf("please enter n:");
scanf("%d",&n);
printf("%d\n",fun(n));
return 0;
}
用递归计算n!
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int factorial(int n)
{
if(n==1)
return 1;
else
{
return n*factorial(n-1);
}
}
int main(int argc, const char *argv[])
{
int n;
printf("please enter n value:");
scanf("%d",&n);
int value=factorial(n);
printf("%d的阶乘为:",n);
printf("%d\n",value);
return 0;
}
使用递归计算各个位数字之和
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int Sum(int n)
{
if(n/9==0)
return n;//如果是一位数直接输出
else
{
int i=99, j=900;
while (1)
{
if(n/i==0)//判断几位数
{
return n%10+Sum(n/10);
break;//判断出几位数直接跳出循环
}
i+=j;//使i==99,999,9999......
j*=10;
}
}
}
int main(int argc, const char *argv[])
{
int n;
printf("please enter n value:");
scanf("%d", &n);
printf("%d的各个位数字之和为:%d\n",n,Sum(n));//调用递归函数
return 0;
}