求用c语言把1到10的阶乘的和

求用c语言把1到10的阶乘的和,第1张

求1~10阶乘和C语言程序如下:visual C++60编译,仅供参考。

#include <stdioh>

int  fact(int num)

{

if(num>1)

{

return numfact(num-1);

}

else

{

return 1;

}

}

int main()

{

int n;

int sum;

sum=0;

for(n=0;n<=10;n++)

{

sum+=fact(n);

}

printf("0!+1!+10!=%d\n",sum);

return 0;

}

/

程序描述:求求1~20的阶乘之和。

算法思路:先求出每一项的阶乘值,然后将所有项的阶乘值相加。

/

#include <stdioh>

#define N 20

typedef unsigned long long uInt64;  //自定义类型

//求出每一项阶乘值的函数

uInt64 fact(int n)

{

    int i;

    uInt64 s;

    for(i=s=1;i<=n;i++)

        s=i;   //从1开始循环累加相乘

    return s;

}

 

int main()

{

    uInt64 s;

    int i;

    for(i=1,s=0;i<=N;i++)

        s+=fact(i);     //从第1项开始循环累加每一项的阶乘值

    printf("1!+2!+3!+……+20!=%llu\n",s);

    return 0;

}

分析下程序,阶乘可以用递归做,也可以用循环做,这里就放上这两种代码了。

一递归:

#include <stdioh>

int f(int t)

{

if (t==1)

return 1;

else

return tf(t-1);

}

int main()

{

printf("%d\n",f(10));

return 0;

}

程序分析:定义一个f函数,利用递归的特性,进行运算

10f(9) = 109f(8) …… 直到到1时返回1

得出结果:

二循环:

#include <stdioh>

int main()

{

int t1=1;

for(int i=10;i>=1;i--)

{

t1 = t1i;

}

printf("%d", t1);

return 0;

}

程序分析:直接用一个for循环进行自减即可完成,定义t1用于存储结果

得出结果:

以上就是关于求用c语言把1到10的阶乘的和全部的内容,包括:求用c语言把1到10的阶乘的和、用C语言求1~20的阶乘之和!、【在线等】c语言程序:对n的阶乘求和,n=1到10等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9971133.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存