格式化C++程序的输出

Formatting the output of a C++ program

本文关键字:输出 程序 C++ 格式化      更新时间:2023-10-16

我已经为这个问题编写了大部分代码,它很有效。我只是不确定如何格式化输出。

问题:设计和开发一个计算delta <= 0.000001 时e(n)的C++程序

e(n-1) = 1 + 1/1! + 1/2! + 1/3! + 1/4! + … + 1/(n-1)!
e(n) = 1 + 1/1! + 1/2! + 1/3! + 1/4! + … + 1/(n)!
delta = e(n) – e(n-1)

您没有任何程序输入。你的输出应该是这样的:

N=2 e(1)=2e(2)=2.5Δ=0.5

N=3 e(2)=2.5 e(3)=2.565 delta=0.065

    #include <iostream>
using namespace std;
//3! = 3 * 2!
//2! = 2 * 1! 
//1! = 1
int factorial(int number) 
{
    //if number is <= 1, return 1
    if (number <= 1)
    {
        return 1;
    }
    // otherwise multiply number by factorial(number - 1)
    else
    {
            //otherwise multiply number by factorial(number - 1) and return it
        int temp = number * factorial(number - 1);
        cout << "factorial of " << number << " = " << temp << endl;
            return temp;
    }
}
double sumOfFactorials(int n) 
{
    double sum = 0;
    //loop from 1..n, adding the factorial division to a sum
    for (int i = 1; i <= n; i++)
    {
        double dividedValue = 1.00000 / factorial(i);
        cout << fixed;
        sum = sum + dividedValue;
    }
    return sum;
}
/**
* Compute the sum of 1 + ... + 1/(n!)
* input number: 1
* output number: 1 + ... + 1/(input!)
*/
double e(int n) 
{
    double value = 1 + sumOfFactorials(n);
    return value;
}
int main()
{
    cout << "e:" << e(3) << endl; // 1 + sumOfFactorials(3)
    cout << "sumOfFactorials: " << sumOfFactorials(3) << endl; //0 + 1/1! + 1/2! + 1/3!
}

您有正确的代码,所需要的只是格式化输出。只需修改main()方法即可。这是一个你可以尝试的片段。

注意:答案的准确性有错误,我认为你可以纠正。

PS:请取消对调试cout行的注释。

int main()
{

for(int i = 2; i<4; i++){
    double en_1 = e(i-1);
    double en = e(i);
    double delta = en - en_1;
    cout << "N = "<<i;
    cout << " e("<< (i-1) <<") = " << en_1;
    cout << " e("<< (i) <<") = " << en;
    cout << "delta = " << delta;
    cout << "n";
}   

}