1、 写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和, 例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19 以及一个数的阶乘
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int DigitSum(int n) //递归求一个数各个位数上的数字之和
{
if (n > 9)
{
return DigitSum(n % 10)+ DigitSum(n / 10);
}
return n;
}
int factor(int n) //递归求一个数的阶乘
{
if (n == 1)
{
return 1;
}
return factor(n-1)*n;
}
int factor1(int n) //不采用递归求一个数的阶乘
{
int ret = 1;
while (n != 0)
{
ret = ret * n;
n--;
}
return ret;
}
int main()
{
int num;
int sum=0;
scanf("%d", &num);
sum = sum + DigitSum(num);
printf("%d\n",sum);
printf("%d\n",factor(num));
printf("%d\n",factor1(num));
system("pause");
return 0;
}