c语言用函数求n的阶乘的和

#include<stdio.h>
void main()
{
int n;
long sum();
scanf("%d",&n);
printf("sum=%ld\n",sum(n));
}

long sum(n)
int n;
{
int i:
long s=0,fac();
for(i=1;i<=n;i++)
s=s+fac(i);
return(s);
}

long fac(i)
int i;
{
if(i==0)
return(1);
else
return(i*fac(i-1));
}

Compiling...
函数求阶乘和.cpp
E:\C语言程序\函数求阶乘和.cpp(7) : error C2660: 'sum' : function does not take 1 parameters
E:\C语言程序\函数求阶乘和.cpp(10) : error C2065: 'n' : undeclared identifier
E:\C语言程序\函数求阶乘和.cpp(11) : error C2448: '<Unknown>' : function-style initializer appears to be a function definition
E:\C语言程序\函数求阶乘和.cpp(11) : fatal error C1004: unexpected end of file found
执行 cl.exe 时出错.

函数求阶乘和.exe - 1 error(s), 0 warning(s)

法/步骤

第一步、编程的第一步就是写头文件,对于初学者来说,只写一个头文件就可以了,即#include<stdio.h>

第二步、就是定义我们的变量,我们需要定义一个n,用来求他的阶乘,sum用来保存结果,i用来循环

第三步、就是把sum初始化,为1.千万不要为0,保证后面的结果不出问题。

第四步、就是输入一个n,用来求n的阶乘,别忘了在前面提示一下。

第五步、就是利用for循环来求阶乘。

第六步、就是调用printf(:);函数来输出阶乘结果。

拓展资料

定义

n!=1×2×3...xn

n!=X×(X-1)×(X-2)...×1

1751年,欧拉以大写字母M表示m阶乘 M=1x2x3...x...m

1799年,鲁非尼在他出版的方程论著述中,则以小写字母π表示m阶乘。而在1813年,高斯则以Π(n)来表示n阶乘。而用来表示n阶乘的方法起源于英国,但仍未能确定始创人是谁。直至1827年,由于雅莱特的建议而得到流行,现在有时也会以这个符号作为阶乘符号。

当n较大时,直接计算n!变得不可能,这时可通过斯特灵(Stirling)公式计算近似算或取得大小范围。

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-09-20

1 思路

    关键是写出求阶乘的函数

2 代码

#include<stdio.h>
//求阶乘
int factorial(int n){
if (n == 0 || n == 1)
return 1;
else
return n*factorial(n - 1);
}

int main(){
int n;
printf("求1!+2!+...+n!的结果\n输入n的值: ");
scanf("%d", &n);
int sum = 0;
for (int i = 1; i <= n; i++){
sum += factorial(i);
}
printf("结果为: %d\n", sum);

getchar();
getchar();
return 0;
}

3 运行效果

第2个回答  2018-07-11

#include<stdio.h>

int main()

{

int num,product=1;

printf("请输入一个数:");

scanf("%d",&num);

for(int i=1;i<=num;i++)

{

product = product*i;

}

printf("阶乘是:%d\n",product);

return 0;

}

第3个回答  2017-12-17
#include<stdio.h>
long sum(int n);        //    声明 
long fac(int i);         //    声明 

int main()
{
    int n;
    scanf("%d",&n);
    
    printf("sum=%ld\n",sum(n));
    return 0;
}

long sum(int n)        //    形参写里面 
{
    int i;        
    long s=0;          //    调用就行了 
    for(i=1;i<=n;i++)
        s=s+fac(i);
    return(s);
}

long fac(int i)
{
    if(i==0)
        return(1);
    else
        return(i*fac(i-1));
}

本回答被提问者采纳
第4个回答  2009-11-27
#include <stdio.h>
int main()
{
int i,t;
t=1;
i=2;
while (i<=10) //求1加到10的值
{t=t+i;
i=i+1;
}
printf("%d",t);
getchar();
}

可以把10改为100,即是1加到100的和..用while语句

c语言用函数求n的阶乘的和
第一步、编程的第一步就是写头文件,对于初学者来说,只写一个头文件就可以了,即#include<stdio.h> 第二步、就是定义我们的变量,我们需要定义一个n,用来求他的阶乘,sum用来保存结果,i用来循环 第三步、就是把sum初始化,为1.千万不要为0,保证后面的结果不出问题。第四步、就是输入一个n...

c语言自定义函数求n个数的阶乘和
long fact(long n) { if (n == 0 | n == 1) return 1; else { return (n * fact(n - 1)); } } void Main() { int a; printf("输入计算的阶乘:"); scanf("%u", &a); ...

【在线等】c语言程序:对n的阶乘求和,n=1到10
include <stdio.h> int f(int t){ if (t==1)return 1;else return t*f(t-1);} int main(){ printf("%d\\n",f(10));return 0;} 程序分析:定义一个f函数,利用递归的特性,进行运算 10*f(9) = 10*9*f(8) …… 直到到1时返回1 得出结果:二.循环:include <stdio.h> int...

c语言1到10的阶乘的和是多少?
voidmain(){inti,j,n,sum=0;for(i=1;i<=10;i++){ n=1;for(j=1;j<=i;j++)n*=j;/* 将每一项阶乘相加求和。*/ sum+=n;} printf("%d\n",sum);} 本程序采用两层循环实现1到10的阶乘求和运算,使用第一层运算代表该计算式中的10项阶乘,第二层for循环...

怎样用C语言计算阶乘的和?
这道题是求从3-21,差为3的8个数阶乘的和,编写一个求阶乘之和的函数sum(),使用for循环进行阶乘的计算,最终和太大,因此使用科学计数方式表示输出。程序代码:include<stdio.h> float sum(int n){int i,j;float t,s=0;for(i=3;i<=n;i=i+3){t=1;for(j=1;j<=i;j++)t=t*j...

C语言求n个阶乘之和,求完善三行填空,带绿色斜杠的三行,谢谢
第一个 函数声明 long f(int n);第二个 s值初始化 s = 0;第三个 f函数内s值初始化 由于是乘法 初始化为1 s = 1;

如何用c语言分别输出1到5的阶乘,并且输出它们的和?
n); printf("%d的阶乘为:%d\\n",n,jcn); sum=sum+jcn; } printf("总和为:%d\\n",sum); return 0;}int jc(int n)\/\/计算n的阶乘{ int i,r=1; for(i=1;i<=n;i++) { r=r*i; } return r;} ...

c语言阶乘求和
include <stdio.h>void main( ) {int i,n,k=1,s=0;scanf("%d",&n);for(i=1;i<=n;i++){k*=i;s+=k;}printf("%d",s);}\/\/运行示例:

c语言阶乘和实现
一、算法分析:计算阶乘和分成两步:1 计算阶乘。 对于n的阶乘,从1累乘到n即可。2 每个阶乘相加。于是算法可以设计为,从1到20循环,计算每个数的阶乘,并累加。由于n!=(n-1)! *n, 所以每次计算阶乘,可以利用上次的结果,减少运算量。二、代码实现:include <stdio.h>int main(){long long ...

如何使用c语言求n的阶乘?
1、首先定义一个函数,这个函数里的内容求n的阶乘,返回值是n的阶乘,如下图所示。2、函数定义完成之后,就要开始写main函数里的内容,还是定义变量。3、变量定义后就要赋值,把sum的值写为0.因为后面的求和就需要sum的初始值为0,如下图所示。4、下一步就是利用for循环了,for循环i初始值位1,结...

相似回答