求1到n的阶乘之和

求n的阶乘很简单:

#include
int Fact(int n)
{
     
	int c;
	if (n == 0)
		return 1;
	else
		c = n * Fact(n - 1);
	return c;
}
/*或者直接这样: 
int Fact(int n){
    if(n==0) return 1;
	else  return n*Fact(n-1);
}
*/
int main()
{
     
	int n;
	printf("请输入n的值:");
	scanf("%d", &n);
	n = Fact(n);
	printf("%d", n);
	return 0;
}

稍加改动,变成求1到n的阶乘之和:

#include
int Fact(int i)
{
     
	if (i == 0)
		return 1;
	else
		return i * Fact(i - 1);
}

int main()
{
     
	int i, j, n, sum = 0;
	printf("请输入n的值:");
	scanf("%d", &n);
	for (i = 1; i <= n; i++)
	{
     
		j = Fact(i);
		sum = j + sum;
	}
	printf("%d", sum);
	return 0;
}

你可能感兴趣的:(C小知识,c语言)