妹子杀手


私信TA

用户名:Giant

访问量:80300

签 名:

怀念我的ACM生涯

等  级
排  名 52
经  验 10865
参赛次数 4
文章发表 4
年  龄 0
在职情况 在职
学  校 DJTU
专  业

  自我简介:

我想起那天下午夕阳下的奔跑 那是我逝去的青春

这个题,求阶乘和,循环遍历就可以了,不用双重个循环,每次计算阶乘和,然后累加就可以

主要注意数值的大小,用int肯定放不下的,必须用double,并且中间的阶乘结果也要用double才能不会出现答案错误的问题。


PS:printf的科学计数法格式是%e


应该看一下就明白,答案如下:

#include<stdio.h>
int main()
{
	int i;
	double j=1,sum=0;
	for(i=1;i<=30;i++)
	{
		j = j*i;
		sum = sum+j;
	}
	printf("%.2e\n",sum);

	return 0;

}


 

0.0分

72 人评分

  评论区

#include<stdio.h>
int f(int a)
{
	if(a==1)
		return 1;
	else
		return a*f(a-1);
}
int main(){

	double b=0,j=1;
	
	for(int i=1;i<=30;i++)
	{
		b+=f(i);
	}
	printf("%.2e\n",b);
	return 0;
}
我这个怎么不对呀
2024-03-20 15:07:50
int main()
{
	int i,j;
	double an=1,sum=0;
	for(i=1;i<=30;i++)
	{
		for(j=1;j<=i;j++)
		{
			an*=j;
		}
		sum+=an;
		an=1;
	}
	printf("%0.2e\n",sum);
	return 0;
}
2024-03-10 14:44:36
妙啊,利用了(n + 1)!=(n + 1)*n!
2023-11-09 01:17:15
#include <stdio.h>
int main()
{
	int i,a=1;
	double sum=0,b;
	for(i=1;i<=30;i++)
	{
		b=i;
		while(b>0)
		{
			a=a*b;
			b--;
		}
		sum=sum+a;
		a=1;
	}
	printf("%.2e\n",sum);
	
	return 0;
} 为啥这个不对
2022-10-28 21:05:32
看到题目第一想到的就是双重循环。。。这个真的厉害!
2022-09-17 10:57:33
#include<stdio.h>
int main()
{
int i;
double a=0,s=0;
	for(i=1;i<=30;i+=2)
	{
		a=a+i;
		s=s+a;
	}
	printf("%.2e",s);
	return 0;
}
//我这个问题在哪啊
2022-08-24 18:14:04
一开始没看懂,以为就是30!,然后让脑子跟着程序逐步走了一遍才晓得,j 被不断赋予新值(而这个值就是上一个值阶乘和),真的厉害!
2022-08-17 10:26:03
好奇怪啊,我用long long 写阶乘函数factorial命令,然后用long long int输出可以,但是为啥科学计数法就出错
2022-07-15 21:57:18