求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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)