c语言。求1!+2!+3!+……+10!。要求编写求N的阶乘的函数

作者&投稿:潮态 (若有异议请与网页底部的电邮联系)
求1!+2!+3!+……+10!。要求编写一个求N的阶乘的函数。~

#include

using namespace std;

int f(int x)//求阶乘函数;
{
int result = 1;//注意初值为1;
for(int i=1;i<=x;i++)
result = result*i;
return result;
}

int main()
{
……
}

----------------------------------
还有中是用递归的,比这个耗时要长,所以就不写了

#include
using namespace std;
int f(int i)
{int t=1,j;
for(j=1;j<=i;j++)
t=t*j;
return t;
}
int main(int argc, char* argv[])
{
int N,i, sum=0;
cout<<"输入N:";
cin>>N;
for(i=1;i<=N;i++)
sum=sum+f(i);
cout<<"sum="<<sum<<endl;
return 0;
}
把f函数放main外面就ok了

所谓 n 的阶乘,就是从 1 开始乘以比前一个数大 1 的数,一直乘到 n,用公式表示就是:1×2×3×4×…×(n-2)×(n-1)×n=n!

#include <stdio.h>

int main()

{

int i,j,n;

double sum=1,k=0;

scanf("%d",&n);

for(j=1;j<=n;j++){

sum=1;

for(i=1;i<=j;i++)

sum=sum*i;

if(j!=n)

printf("%d!+",j);

else

printf("%d!",j);

k+=sum;}

printf("=%lf",k);

printf("
");

return 0;

}

扩展资料:

注意:

(1)for循环中语句可以为语句体,但要用"{"和"}"将参加循环的语句括起来。

(2)for循环中的"初始化"、"条件表达式"和"增量"都是选择项,即可以缺省,但";"不能缺省。省略了初始化,表示不对循环控制变量赋初值。

省略了条件表达式,则不做其它处理时便成为死循环。省略了增量,则不对循环控制变量进行操作,这时可在语句体中加入修改循环控制变量的语句。

(3)for循环可以有多层嵌套。

参考资料:

百度百科-for



如果只是要求求数的阶乘,我 给你提供一个计算10000以内阶乘的函数哈,呵呵,但是若是还要相加,就得再编写一个Bigger int 的加法运算哈,如果需要我可以把N位数相加的函数代码也给你,希望对你有帮助
#include<stdlib.h>
#include<iostream>
#include<iomanip>
using namespace std;
const int N=1000;

int compute(unsigned int *s,int n)//s用来存储一次的计算结果,n为本次计算的乘数,函数返回结果中有效数据的节数
{
unsigned long p; //暂时存放一节的结果
unsigned long more=0;//一次乘法的进位
int i; //循环变量

static int m=1;//存放结果中的节数,三位一节
static int q=0;//存放结果中最后为零的节数

//计算本次的结果
for(i=q;i<m;i++)
{
p=(long)s[i]*(long)n+more;
more=p/N;
s[i]=p-more*N;
}

//计算结果中最后为零的节数
while(s[q]==0) q++;

//处理最高位
for(more=p/N;more;)
{
p=more;
more=p/N;
s[i++]=p-more*N;
m++; //有效节数增一
}

return m; //返回有效节数
}

int main()
{
unsigned int *s; //存放结果
int i; //循环变量
int m; //存放节数
int n; //求n的阶乘

cout<<"请输入一个正整数<0----10000>:";
cin>>n;

if(n<0)
{
cout<<"输入数据错误!"<<endl;
return 0;
}
else if(n==0)
{
cout<<"0!==1"<<endl;
return 0;
}

//初始化s
s=(unsigned int *)malloc(n*sizeof(s)*10);
for(i=1;i<n;i++) s[i]=0;
s[0]=1;

//计算结果
for(i=2;i<=n;i++) m=compute(s,i);

while(s[m]==0) m--;//过滤掉前面的零

//输出结果
cout<<n<<"!=="<<s[m--];//最高一节

int num=1;
for(i=m;i>=0;i--)
{
num++;
cout<<','<<setw(3)<<setfill('0')<<s[i];
if((num%10)==0) cout<<endl;
}
cout<<endl;

//释放空间
free(s);
system("pause");
}

#include "stdio.h"
double hi(int n)
{
int i;
double s=1.0;
for (i=1;i<=n;i++)
s=s*i;
return s;
}
void main()
{
double sum=0.0;
int n,i;
printf ("please input n:\n");
scanf ("%d",&n);
for (i=1;i<=n;i++)
sum+=hi(i);
printf ("1!+2!+3!+……+n!=%0.f",sum);
}

给你参考下!自己思考才有进步,才有意义。
祝你生活愉快

#include"stdio.h"

int fun(int n)
{
int i,sum=1;
for (i=1;i<=n;i++) sum*=i;
return sum;
}

int main()
{
int i,n,sum=0;
scanf("%d",&n);
for (i=1;i<=n;i++) sum+=fun(i);
printf("%d\n",sum);
return 0;
}

#include "stdio.h"
int fun(int x)
{
int temp=1;
int sum=0;
for(int i=1;i<=x;i++)
{
temp*=i;
sum+=temp;
}
return sum;
}
int main()
{
int n=10;
int result=fun(n);
printf("%d",result);
}


在C语言中,1&2等于多少?
在C语言中,1&2等于0

C语言编程,即求1!+2!+3!+……+10!
include<stdio.h> int main(){ int i,j,sum=0,a;for(i=1;i<=10;i++){ a=1;for(j=1;j<=i;j++)a*=j;sum+=a;} printf("sum=%d\\n",sum);return 0;}

C 语言 输入一个5~10之间的整数n,求1!+2!+3!+…+n!.例如输入5,输出为...
include<stdio.h>main(){int s=0,p=1,i,n,j;scanf("%d",&n);if(n<5||n>10)return 0;for(i=1;i<=n;i++){p=1;for(j=1;j<=i;j++)p*=j;s+=p;}printf("%d",s);}您好,很高兴为您解答,流星不死为您答疑解惑 如果本题还有不懂的地方请追问,望采纳我的回答。祝楼主...

C语言 !1 值是多少
1 !1的结果是 0 2 另n是一个整数,当n=0时,!(n)=1;当n不等于0时,!(n)=0 3 编程验证 include<stdio.h>int main(){printf("%d\\n", !(1));printf("%d\\n", 1 + !2);printf("%d\\n", !(-123));printf("%d\\n", !(0));getchar();return 0;}4 运行结果 ...

C语言:编写函数fun求1!+2!+3!+ …… +n!的和,
代码如下:include<stdio.h>long long fun(int n){ if(n>20 || n<1) return 0; \/\/返回0表示输入数据超出限制 long long s=0,m=1,i; for(i=1;i<=n;++i){ m*=i; \/\/m=i! s+=m; } return s;}int main(){ printf("%lld\\n",fun(10))...

C语言:自定义求阶乘函数,主函数调用该函数计算1!+2!+3!+4!+5!值,咋...
代码文本:include "stdio.h"int myfact(int n){ return n>1 ? n*myfact(n-1) : 1;} int main(int argc,char *argv[]){ int i,s;for(s=0,i=1;i<6;s+=myfact(i++));printf("1!+2!+3!+4!+5! = %d\\n",s);return 0;} ...

C语言编程题,求1+2!+3!+...+20!的和,怎么做?
以下是用C语言编程求出1!+2!+3!+……+20!的值示例代码:include <stdio.h> int main(){ int i,j;long sum,k;sum=0;for(i=1;i<=20;i++){k=1;for(j=1;j<=i;j++){ k=k*j;} sum=sum+k;} printf("1+2!+3!+…+20!=%d",sum);} ...

求1!+2!+3!+4!+5!...18!+19!+20!的C语言代码,我感觉我是对的呀,求问...
其次,程序中的双重循环,其中内循环的循环变量和外循环的循环变量,用的是同一个变量a,这在内循环循环时就把外循环的循环控制变量给破坏掉了,所以就不能正确地求出不同的阶乘数的总和。#include<stdio.h>int main(){ long long n,i,s=0,t=1;for(i=1;i<21;i++){t*=i;s+=t;}...

C语言中,编一个C语言程序,计算1!+2!...+15!的结果,并写出运行结果_百度...
include <stdio.h>void main(){int i;double k=1,s=0;for(i=1;i<=15;i++) {k*=i;s+=k;}printf("1!+2!+...+15!=%.f",s);} 运行结果截图:

c语言编程计算1!+2!+3!+4!+5!(用for的双层循环),请教大家
main(){ int i,j,n,sum=0;for(i=1;i<=5;i++){ n=1;for(j=1;j<=i;j++)n*=j;sum+=n;} printf("%d\\n",sum);} 说明:第一个for循环是分别提出进行阶乘的因数即分别提出1,2,3,4,5。第二个for循环是将提出的因数进行阶乘运算。在第一个for和第二个for之间加个n=1;是...

泰宁县15118983608: C语言 用函数调用方法求1!+2!+3!+…+n!的和 -
英关利可: #include<iostream> #include<cstdio> using namespace std; int main() { int n; while(cin>>n) { long long sum=0,num=1; for(int i=1;i<=n;i++) { num*=i; sum+=num; } printf("%lld\n",sum); } return 0; } printf()函数的调用格式为:printf("<格式化字...

泰宁县15118983608: C语言编程:编写用于求1!+2!+3!+…+n!和的函数和主函数,并将结果返回给主函数输出. -
英关利可: #include<stdio.h> void main() { int i; float k=1,sum=0; for(i=1;i<=20;i++) { k=k*i; sum=sum+k; } printf("\n%f",sum); }

泰宁县15118983608: C语言求1+2+3+……+100 -
英关利可: #include<stdio.h> int main() {int i,t;t=1,i=2; while(i<=100) {t=t+i;i=i+1; } printf("%d",t); printf("\n");return 0; } 我在c-free 上可以运行的呀! 这样写没问题呀,就是麻烦点.

泰宁县15118983608: 用C语言编写程序计算1+2+3+…+20,并输出结果. -
英关利可: 1 2 3 4 5 6 7 8 9 10#include<stdio.h> intmain() {inti,n=0;for(i=1;i<=20;i++){n+=i;}printf("%d\n",n); }

泰宁县15118983608: 求1!+2!+3!+……+100!C语言程序代码 -
英关利可: #includeint main(int i) { int s=i; s+=(i

泰宁县15118983608: 用c语言求1!+2!+3!+……20! -
英关利可: //经过调试的程序,可以运行出正确结果 #include "stdio.h" void main() {int i=1;int sum=0;int s=1;for(i=1;i<=20;i++){s=s*i;sum=sum+s;}printf("%d\n",sum); }

泰宁县15118983608: C语言编程求1!+2!+3!…+5! 的值 -
英关利可: #include <stdio.h> long func(int x) { int i; long s=1; for(i=1;i<=x;i++) s*=i; return s; } void main() { int a; long sum=0; printf("请输入要求的项数:"); scanf("%d",&a); for(int i=1;i<=a;i++) sum+=func(i); printf("The result is:%d\n",sum); }

泰宁县15118983608: 用c语言函数求1!+2!+3!+···+10!的和 -
英关利可: #include<stdio.h> void main() { long s,a;int b;for(a=1,b=1,s=0;b<=10;b++){ a*=b; //a是每位数的阶乘s+=a; //阶乘的和}printf("s=%ld\n",s);}

泰宁县15118983608: 求1+2+3+…+ n,用C语言求1+2+3+…+ n,mysum负责具体计算1+2+3+…+ n的值;主函数main()负责n值的输入,1+2+3+…+n的输出,mysum函数的调用. -
英关利可:[答案] 2中方法实现 输入X: 100 5050 5050 请按任意键继续... #include "stdio.h" #include "stdlib.h" int mysum(int x) { return (1+x)*x/2; } int mysum2(int x) { int sum=0; for(int i=1;i

泰宁县15118983608: C语言编程题.编程题目为 编程计算1!+2!+3!+……+10!的值 -
英关利可: #include <stdio.h>#define N 10 //定义符号常量//求出每一项阶乘值的函数 int fact(int n) { int i; int s; for(i=s=1;i<=n;i++) s*=i; //从1开始循环累加相乘 return s; } int main() { int s; int i; for(i=1,s=0;i<=N;i++) s+=fact(i); //从第1项开始循环累加每一项的阶乘值 printf("1!+2!+3!+……+10!=%d\n",s); return 0; }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网