第一段,用的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;
}