C语言通过函数来完成求1!+2!+....k!的和

如题所述

第1个回答  2008-11-06
很简单 直接调用一个阶乘函数就可以实现:
#include <stdio.h>

int factorial(int n);/* 求n的阶乘 */
int main(int argc, char *argv[])
{
int k;
int sum=0;
int i;
printf("输入一个整数:\n");
scanf("%d",&k);

if(k<1)
printf("输入错误");
for(i=1;i<=k;i++)

sum+=factorial(i);
printf("%d 阶乘之和为:%d\n",k,sum);
return 0;
getchar();
}
int factorial(int n)/* 求n的阶乘 */
{
if(n>1)
return(n*factorial(n-1));
return 1;
}
第2个回答  2008-11-06
//调试过了
#include <stdio.h>
double f(int k)
{ double t=0;int t1=1; int i,j;
for(i=1;i<=k;i++)
{
for(j=1;j<=i;j++)
t1=t1*j;
t=t+t1;t1=1;
}
return t;
}
int main()
{
int k;
printf("input k=");
scanf("%d",&k);
if(k<1)
{printf("\nk<1");return 0; }
printf("\nThe result is:%.0lf\n",f(k));
system("pause");
return 1;
}
第3个回答  2008-11-06
#include<iostream>

int main()
{
using namespace std;
int m=0,i=0;
cin >>m;
while(m!=0)
{
for(int n=1;n!=m;n++)
n*=m;
i+=n;
m--;
}

cout << "the result is " << i << endl;

system("pause");
return 0;
}

看看这样成吗?
第4个回答  2008-11-06
#include<stdio.h>
void main()
{
int k, i, s=0, s1=1;
scanf("%d",&k);
for (i=1; i<=k; i++)
{
s+=s1*=i;
}
printf("%d\n", s);
}本回答被提问者采纳