编写一个求n!的函数,用此函数求1!+2!+.....+10!的值.

如题所述

自定义一个函数求阶乘,主函数中用一个for循环遍历1~10调用自定义函数,并将返回值累加就可解此题。代码如下:

#include "stdio.h"
int f(int n){//自定义求n!的函数
int t;
for(t=1;n>1;t*=n--);
return t;
}
int main(int argc,char *argv[]){
int s,i;
for(s=i=0;i<10;s+=f(++i));//遍历1~10调用f求阶乘累加到s
printf("1!+2!+...+10! = %d\n",s);
return 0;
}

运行结果如下:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-06-23
#include <stdio.h> /*阶乘函数(递归)*/ int func(int n) { if (n == 0 || n == 1) { return 1; } else { return n * func(n - 1); } } int main(void) { int n;/*最大的阶乘*/ int i; int sum = 0;/*阶乘和*/ printf("请输入一个正整数:"); scanf(" %d", &n); for (i = 1; i <= n; i++) { sum += func(i);/*阶乘求和*/ } printf("1! + ... + %d! = %d \n", n, sum); return 0; }
采纳哦本回答被提问者采纳
第2个回答  2014-06-23
用什么语言完成?先给你个C语言的吧 #include <stdio.h>int fun(int n)//计算阶乘的函数{ if(n<0)//参数小于0时报错 { printf("error!\n"); exit(0); } if(n==1||n==0) return 1; else return n*fun(n-1);}main(){ int i,sum=0; for(i=1;i<=10;i++)//计算1到10的阶乘并累加到sum { sum+=fun(i); } printf("result:%d\n",sum);}
相似回答