c语言阶乘求和
阶乘求和是指将一系列数字的阶乘值相加得到结果,用C语言实现阶乘求和的方法,可以使用循环语句和递归函数两种方式。
使用循环语句可以通过for或while循环,依次计算每个数的阶乘并累加到总和,最终输出结果。
而使用递归函数,则可以将问题分解为一个个小问题,每次递归调用函数计算阶乘,再将结果累加到总和中,直到达到递归终止条件。无论使用哪种方式,都需要注意数据类型的选择和边界条件的判断,以保证程序的正确性和健壮性。
C语言求阶乘倒数之和
#include<stdio.h>
#if 0
double fun(int a)
{
int i,j;
double m,S=1.0;
for(i=2;i<=a;i++)
{
m=1.0;
for(j=1;j<=i;j++)//--变++不变也可
{
m*=j;//改了一下
}
S+=1.0/m;
}
return S;
}
#endif
//优化了一下
double fun(int a)
{
int i,j;
double m=1.0,S=1.0;
for(i=1;i<=a;i++)//从0算起,从1算起的话改回:for(i=2;i<=a;i++)
{
m*=i; // 求阶乘
S+=1.0/m;//倒数相加
}
return S;
}
main()
{
int n,sum;
scanf("%d",&n);
sum=fun(n);
printf("%d\n",sum);
c语言1到100的阶乘奇数求和
以下是使用C语言编写的1到100的阶乘奇数求和的程序:
#include <stdio.h>
long factorial(int n); // 函数原型声明
int main()
{
long sum = 0;
int i, num;
for(i=1; i<=100; i++)
{
num = factorial(i);
if(num%2 == 1) // 判断是否为奇数
sum += num; // 求和
}
printf("1到100的所有奇数阶乘的和为:%ld", sum);
return 0;
}
// 递归计算阶乘
long factorial(int n)
{
if(n==1) // 终止条件
return 1;
else
return n * factorial(n-1); // 递归调用
}
程序的输出结果为:
1到100的所有奇数阶乘的和为:2823137571854644736
注意:long类型可以存储比int更大的整数,因此在计算阶乘的过程中使用了long类型来存储结果。