是数据类型的问题吗?
查看原帖
是数据类型的问题吗?
555007
LaserDisc8楼主2022/5/25 10:00

第一段,用的unsignedlonglong,然后运行后结果不对。

#include"iostream"
using namespace std;
unsigned long long f(int x){
	if(x==0||x==1)return 1;
	unsigned long long c=1;
	for(int i=1;i<=x;i++)
	c*=i;
	return c;
}
int main(){
	int a;
	unsigned long long sum=0;
	cin>>a;
	for(int m=1;m<=a;m++){
		sum+=f(m);
	}
	cout<<sum;
	return 0;
}

然后换了个大的,发现错误点又加了。但是自己运行对。是不是时间超了?

#include"iostream"
using namespace std;
long double f(int x){
	if(x==0||x==1)return 1;
	long double c=1;
	for(int i=1;i<=x;i++)
	c*=i;
	return c;
}
int main(){
	int a;
	long double sum=0;
	cin>>a;
	for(int m=1;m<=a;m++){
		sum+=f(m);
	}
	cout<<sum;
	return 0;
}
2022/5/25 10:00
加载中...