用c语言编写1!+3!+5!+...+2n+1!的值,急啊,谢谢啦

2024-12-26 23:59:25
推荐回答(5个)
回答1:

循环吧
#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); //打印最终结果
}
一楼比我的好,递归省内存。我的纯是傻瓜版

回答2:

#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;
}

回答3:

这个程序就怕溢出,因为当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;

}

回答4:

#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);
}

回答5:

#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;
}