循环吧
#include
int main(void)
{
int i,j; //两个循环变量
int n; //输入个数变量
int num,res=0 //num是每一步的加数,res是总和
scanf("%d",&n); //先输入n,个数
for (i=0;i<=n;i++) //循环,用来计算第一个到第n个的和
{
num=1;
for(j=1;j<=(2*i+1);j++) //循环,用来计算每一个加数
{
num*=j; //累计乘积
}
res=res+num; //把每一个加数累加起来
}
printf("1!+3!+5!+...+2%d+1!=\n",n); //打印“1!+3!+5!+...+201!="(我假设你把n设为100)
printf("%d",res); //打印最终结果
}
一楼比我的好,递归省内存。我的纯是傻瓜版
#include
int factorial(const int n)
void main()
{
int i,n;
int sun=0;
scanf("请输入n的值:%d",&n); //输入范围
for(i=0;i
sum+=factorial(i); //加结果
}
printf("%d",sum);
}
//计算(2n+1)!
int factorial(const int n)
{
int j;
int value= 1;
for(j=0;j
value*=2n+1;
}
return value;
}
这个程序就怕溢出,因为当n比较大的时候,n!会非常大
n很小的时候
用这个代码
int i,n,s=0,n1=1;
for(i=1;i<2*n+1;i++)
{
n1*=i;
if(i%2==0)
continue;
sum+=n1;
}
#include
#define N 5
long func(int n)
{
if(n==0||n==1)
{
return 1;
}
else
{
return n*func(n-1);
}
}
void main()
{
int i;long sum = 0;
for(i=1;i<=2*N+1;i++)
{
sum += func(i);
}
printf("%ld\n",sum);
}
#include
int factorial(unsigned int n)
{
int value = 1;
if(n == 0 || n == 1)
return 1;
value = n*factorial(n-1);
return value;
}
int fun(unsigned int n)
{
int i = 0;
int value = 1;
for(i = 0;i <= n;i++)
{
value = value + factorial(2*i+1);
}
return value-1;
}
int main(void)
{
printf("%d\n",fun(2));
return 0;
}