Java程序阶乘

Java程序阶乘,java,Java,书中是这样写的: “值e^x可近似为以下总和: 1+x+x^2/2!+x^3/3!+…+x^n/n 编写一个程序,将一个值x作为输入,并输出n的和,n取为值1到10、50和100中的每一个。您的程序应重复计算x的新值,直到用户说她或他已完成。表达式n!称为n的阶乘,定义为 n!=1*2*3*…*n 使用double类型的变量存储阶乘(或安排计算以避免任何直接的阶乘计算);否则,可能会产生整数溢出,即大于Java允许的整数。” 我没有任何编码问题(至少还没有),我的问题是我不知道它要我做什么。我得

书中是这样写的:

“值
e^x
可近似为以下总和:

1+x+x^2/2!+x^3/3!+…+x^n/n

编写一个程序,将一个值x作为输入,并输出n的和,n取为值1到10、50和100中的每一个。您的程序应重复计算x的新值,直到用户说她或他已完成。表达式n!称为n的阶乘,定义为

n!=1*2*3*…*n

使用double类型的变量存储阶乘(或安排计算以避免任何直接的阶乘计算);否则,可能会产生整数溢出,即大于Java允许的整数。”

我没有任何编码问题(至少还没有),我的问题是我不知道它要我做什么。我得到了阶乘部分
(例如3i=1*2*3)
,但我不确定它还要求什么。我让用户为“x”输入一个值,但“n”从何而来

“值
e^x
可近似为以下总和:

1+x+x^2/2!+x^3/3!+…+x^n/n

“我不知道这是在说什么或要求什么

我把1-10,50,100部分的这个for循环放在一起,我不知道在不理解其余部分的情况下这是否有意义,但这里是:

for (counter = 1 ; counter <= 100 ;counter++)
{
    //System.out.print("Enter value for x: ");
    //x = keyIn.nextDouble();
    if (counter >= 1 && counter <= 10)
    { 
        if (counter == 1)
            System.out.println("Iterations 1-10: ");
        System.out.println("test to see if 10 show up");
    }
    else if (counter == 50)
    { 
        System.out.println("Iteration 50: ");
    }
    else if (counter == 100)
    { 
        System.out.println("Iteration 100: ");
    }
}

for(counter=1;counter=1&&counter这是说
e^x
可以通过泰勒级数来近似:
Sum(i:0:n)
(xi/fact(i)) 因此,我们有:

double ex_taylor_series(double x, int n)
{
     double value;

     for(int i = 0; i < n; i++)
     {
         value += Math.pow(x, i)/(factorial(i));
     }

     return value;
}

private int factorial (int num)
{
      int value = 1;

      for(int i = num; i > 1; i--)
      {
           value *= i;
      }

      return value;
} 
double-ex\u-taylor\u级数(double-x,int-n)
{
双重价值;
对于(int i=0;i1;i--)
{
值*=i;
}
返回值;
} 

在您的例子中,您只需将n、10、50和100的不同值输入到
ex\u taylor_级数

它要求您使用指数函数的泰勒级数计算
e^x
的某个值。
e^x
对于一些大的函数大约等于
1+x+x^2/2!+x^3/3!+…+x^n/n!
n的值
。是的@Blender是正确的。n表示一些大的数字。它可以是用户输入的,也可以是任何固定的数字。好的,谢谢。我只需要再澄清一点,为什么它有一个“e”和一个“n”变量。这是让我感到困惑的部分,我有用户输入“x”,但还有“n”和“e”在公式中浮动,我不确定这些值的代码是什么。而且,我的书从来没有读过“pow()方法。请继续阅读。基本上,你可以通过求和来近似函数。在你的例子中,我们近似于
e^x
,但近似程度不同:10、50和100次迭代。增加迭代次数可以提高近似精度……既然你是新手,你应该接受。祝你好运。我们lp,我完成了它,它按它应该的方式运行。我弄明白了公式的意思,然后用了两行代码,一段用于功率提升和阶乘部分,这就成功了!谢谢你,史蒂夫和其他人。