1.递归计算0--n的和
#include <stdio.h>
int sum(int n);//递归求和函数
int main(int argc, const char *argv[])
{
//(2)递归计算0--n的和
int n=0;
printf("请输入n的值为:");
scanf("%d",&n);
printf("0--n的和为:%d",sum(n));
return 0;
}
int sum(int n)//递归求和函数
{
if(n==0)
{
return 0;
}
else
{
n--;
return n+1+sum(n);
//return n+sum(n-1);(化简后)
}
}
2.递归计算0--n的积
#include <stdio.h>
int sum(int n);
int mul(int n);
int main(int argc, const char *argv[])
{
//(2)递归计算0--n的和
/* int n=0;
printf("请输入n的值为:");
scanf("%d",&n);
printf("0--n的和为:%d",sum(n));
return 0;
*/
//(2)递归计算1--n的乘积
int n=0;
printf("请输入n的值为:");
scanf("%d",&n);
printf("1-n的积为:%d",mul(n));
}
int sum(int n)//递归求和函数
{
if(n==0)
{
return 0;
}
else
{
n--;
return n+1+sum(n);
//return n+sum(n-1);(化简后)
}
}
int mul(int n)//递归求乘积的函数
{
if(n==0)
return 1;
else
{
//n--;
//return (n+1)*mul(n);
return n*mul(n-1);
}
}
3.递归计算各个位数字的和
#include <stdio.h>
int sum(int n);
int mul(int n);
int sum_of_digit(int n);
int main(int argc, const char *argv[])
{
//(1)递归计算0--n的和
/* int n=0;
printf("请输入n的值为:");
scanf("%d",&n);
printf("0--n的和为:%d",sum(n));
return 0;
*/
/* //(2)递归计算1--n的乘积
int n=0;
printf("请输入n的值为:");
scanf("%d",&n);
printf("1-n的积为:%d",mul(n));
*/
//(3)//递归各个位数字的和
int n=0;
printf("请输入一个数:");
scanf("%d",&n);
printf("各个位求和为:%d",sum_of_digit(n));
}
int sum(int n)//递归求和函数
{
if(n==0)
{
return 0;
}
else
{
n--;
return n+1+sum(n);
//return n+sum(n-1);(化简后)
}
}
int mul(int n)//递归求乘积的函数
{
if(n==0)
return 1;
else
{
n--;
return (n+1)*mul(n);
//化简:return n*mul(n-1);
}
}
int sum_of_digit(int n)//计算各个位数字的和
{
if(n>=0&&n<=9)
{
return n;
}
else
{
int a=n%10;
n=n/10;
return a+sum_of_digit(n);
//return n%10+sum_of_digit(n/10);(化简后)
}
}