编写程序,输入一个正整数n,求下列算式的值。要求定义和调用函数fact(k)计算k的阶乘,函数返回值的类型是double。
1+1/2+ .... +1/n!
输出保留五位小数
样例输入
5
样例输出
sum=1.71667
- #include
- #include
//小数点 - using namespace std;
-
- double fact(int k) {
- double res = 1;
- for (int i = k; i >= 1; i--) { //累乘 5*4*3*2...
- res = res * i;
- }
-
- return res;
- }
-
- int main() {
- int n;
- cin >> n; //输入的数
-
- double last = 0; //表达式的值
- for (int i = 1; i <= n; i++) {
- last = last + 1 / fact(i);
- }
-
- cout << fixed << setprecision(5)<<"sum=" << last << endl;
-
- return 0;
- }