#include<iostream>
#include<iomanip>
using namespace std;
double fact(int n)
{
int t = 1;
for (int i = 1; i <= n; i++)
{
t *= i;
}
return t;
}
int main()
{
int n;
cin >> n;
double sum = 0;
for (int i = 1; i <= n; i++)
{
sum += 1 / fact(i);
}
cout << setiosflags(ios::fixed) << setprecision(5) << std::fixed << "sum=" << sum << endl;
return 0;
}
想知道哪里出问题了
修改见注释处,供参考:
#include<iostream>
#include<iomanip>
using namespace std;
double fact(int n)
{
double t = 1; //int t = 1;
for (int i = 1; i <= n; i++)
{
t *= i;
}
return t;
}
int main()
{
int n;
cin >> n;
double sum = 0;
for (int i = 1; i <= n; i++)
{
sum += 1.0 / fact(i); //sum += 1 / fact(i);
}
cout << setiosflags(ios::fixed) << setprecision(5) << std::fixed << "sum=" << sum << endl;
return 0;
}
将sum += 1 / fact(i);改为sum+=1.0/fact(i)即可。
以上仅供参考,如有任何疑问,可以评论回复,看到即回。
希望对题主有所帮助!可以的话,点个采纳!