# Help with loop

• 03-07-2012, 04:23 AM
lifelesschild
Help with loop
The question is:
You can approximate e by using the following series
1+1/1!+1/2!+1/3!+1/4!+⋯
Write a program that finds out how many TERMS of this series you need before you first get 2.71828183 approximately.

I am having troubles writing my actual program. I am trying to loop and test then count until i hit the number but i feel as if my program is not what the question is asking. I get that the question is asking how many terms are needed to find the approximation of e and not the number given because the actual approximation is 2.71828182845904523, which is precise.

Below is my program. I would really appreciate some feedback.

Code:

```public static void main(String[] args) {                 // TODO Auto-generated method stub                                 double sum=1;                 double k=1;                 while (k<=10)                 {                         sum=sum+(1/factorial (k));                         k++;                         if (sum>=2.71828183)                                 break;                 }                 double term=k-1;         JOptionPane.showMessageDialog (null,"You need "+term+" terms before you first get 2.71828183 approximately. ");         }                 public static double         factorial (double k) {                 double fact=1;                 for (double j=1;j<=k;j++)                         fact=fact*j;                 return fact;         } }```
• 03-07-2012, 04:40 AM
pbrockway2
Re: Help with loop
Assuming that to "first get 2.71828183" means that you first obtain a value between 2.718281825 and 2.718281835 then that is what you should test for. (With a bit of thinking you might be able to simplify the test: but those are the values between which numbers round to 2.71828183.)
• 03-07-2012, 04:50 AM
lifelesschild
Re: Help with loop
how would you obtain the value between 2.718281825 and 2.718281835?
• 03-07-2012, 04:52 AM
lifelesschild
Re: Help with loop
when i compile and run it, it says 10 terms are needed
• 03-07-2012, 05:23 AM
pbrockway2
Re: Help with loop
Quote:

Originally Posted by lifelesschild
how would you obtain the value between 2.718281825 and 2.718281835?

I'm not sure I understand this. You obtain the value by adding the terms of the series together. The point is to understand when (after how many terms) you reach a value within these limits.
• 03-09-2012, 01:51 AM
berb12
Re: Help with loop
Your while loop stops at when k=10, don't you want it to stop when (sum<e)?
• 03-09-2012, 01:52 AM
berb12
Re: Help with loop
or (sum>=e) for that matter