Hey guys i was wondering if anyone can help me with this
im new at java but my teacher really has it that we are at this level already, i get the basic knowlege but it would be awesome if anyone would help. So far i got the factorial but i dont know how to implement it into the program.

One of the more amazing facts from calculus is that the following sum gets closer and closer to the value ex the more terms you add in:
ex = 1 + x + x2/2! + x3/3! + x4/4! + x5/5! + x6/6! + . . . .
Remember that n! means n factorial, n*(n1)*(n2)* ... *1. For example, if x is 2 then
e2 = 1 + 2 + 22/2! + 23/3! + 24/4! + 25/5! . . . .
e2 = 1 + 2 + 4/2 + 8/6 + 16/24 + 32/120 + . . . .
e2 = 1 + 2 + 2 + 1.3333 + 0.6666 + 0.2666 + . . . .
e2 ~ 7.266
More exactly, e2 = 7.38907...
Write a program that asks the user to enter x, then calculates ex using a loop to add up successive terms until the current term is less than 1.0E12. Then write out the value Math.exp(x) to see how your value compares.
To do this program sensibly, the loop will add in a term each iteration.
sum = sum + term;
Look carefully at the first equation for ex. Notice that each term in the series is:
x N/N!
for some N. This is the same as:
x(N1)/(N1)! * x/N
This is the previous term times x/N. So each iteration of the loop merely has to multiply the previous term by x/N and add it to the accumulating sum.
Don't let the math scare you away! This is actually a fairly easy program, and is typical of a type of calculation that computers are often used for.
Enter x:
2
n:1 term: 2.0 sum: 3.0
n:2 term: 2.0 sum: 5.0
n:3 term: 1.3333333333333333 sum: 6.333333333333333
n:4 term: 0.6666666666666666 sum: 7.0
n:5 term: 0.26666666666666666 sum: 7.266666666666667
n:6 term: 0.08888888888888889 sum: 7.355555555555555
n:7 term: 0.025396825396825397 sum: 7.3809523809523805
n:8 term: 0.006349206349206349 sum: 7.387301587301587
n:9 term: 0.0014109347442680777 sum: 7.3887125220458545
n:10 term: 2.8218694885361555E4 sum: 7.388994708994708
n:11 term: 5.130671797338464E5 sum: 7.389046015712681
n:12 term: 8.551119662230774E6 sum: 7.3890545668323435
n:13 term: 1.3155568711124268E6 sum: 7.389055882389215
n:14 term: 1.8793669587320383E7 sum: 7.3890560703259105
n:15 term: 2.5058226116427178E8 sum: 7.389056095384136
n:16 term: 3.1322782645533972E9 sum: 7.389056098516415
n:17 term: 3.6850332524157613E10 sum: 7.389056098884918
n:18 term: 4.094481391573068E11 sum: 7.389056098925863
n:19 term: 4.309980412182177E12 sum: 7.3890560989301735
n:20 term: 4.309980412182177E13 sum: 7.389056098930604
my e^x: 7.389056098930604
real e^x: 7.38905609893065

need help with Java factorial
Page 1 of 13 Replies  2484 Views  Last Post: 19 October 2010  11:29 AM
Replies To: need help with Java factorial
#2
Re: need help with Java factorial
Posted 19 October 2010  10:29 AM
We will not give you code. Post your attempt(s) at solving you problem. We will help you debug it and suggest improvements.
Use the code tags:
Use the code tags:
#3 Guest_Ghosted*
Re: need help with Java factorial
Posted 19 October 2010  10:57 AM
n8wxs, on 19 October 2010  09:29 AM, said:
We will not give you code. Post your attempt(s) at solving you problem. We will help you debug it and suggest improvements.
Use the code tags:
Use the code tags:
Thanks for a reply, and i dint want the code just a mental breakdown of what i need to add =]
so far i have
import java.util.Scanner; class ConrolledLoop{ public static void main(String[] args){ Scanner scan = new Scanner(System.in); double inData; System.out.println("Enter n!: "); inData = scan.nextDouble(); double N = inData; //User input double factorial= 1; System.out.println(+N+"! is " +factorial); for (double i= 1; i<=N; i++){ factorial=factorial*i; } System.out.println(factorial); } }
That is what i have so far, but that is just to firgure out the factorial. I need a way so that When the user inputs X it would power X to itself and factor X! so it would look like this e^x = 1 + x + x^2/2!
then after the first x^2/2! it adds one to the power and one to the factorial and now it would look like
e^x = 1 + x + x^2/2!+x^3/3!.. i hope that helps im sorry if im being a such pain, im kinda new to this.
#4 Guest_Ghosted*
Re: need help with Java factorial
Posted 19 October 2010  11:29 AM
Ghosted, on 19 October 2010  09:57 AM, said:
n8wxs, on 19 October 2010  09:29 AM, said:
We will not give you code. Post your attempt(s) at solving you problem. We will help you debug it and suggest improvements.
Use the code tags:
Use the code tags:
Thanks for a reply, and i dint want the code just a mental breakdown of what i need to add =]
so far i have
import java.util.Scanner; class ConrolledLoop{ public static void main(String[] args){ Scanner scan = new Scanner(System.in); double inData; System.out.println("Enter n!: "); inData = scan.nextDouble(); double N = inData; //User input double factorial= 1; System.out.println(+N+"! is " +factorial); for (double i= 1; i<=N; i++){ factorial=factorial*i; } System.out.println(factorial); } }
That is what i have so far, but that is just to firgure out the factorial. I need a way so that When the user inputs X it would power X to itself and factor X! so it would look like this e^x = 1 + x + x^2/2!
then after the first x^2/2! it adds one to the power and one to the factorial and now it would look like
e^x = 1 + x + x^2/2!+x^3/3!.. i hope that helps im sorry if im being a such pain, im kinda new to this.
This is my new code it give me 3 when i put 2 in
import java.util.Scanner; class ConrolledLoop{ public static void main(String[] args){ Scanner scan = new Scanner(System.in); double inData; System.out.println("Enter the term"); inData = scan.nextDouble(); double F = inData; double P = inData; double N = inData; double factorial= 1; double e = 0; for (double i= 1; i<=P; i++){ } for (double i= 1; i<=F; i++){ factorial=factorial*i; } e= Math.pow((N), P)/F; double n = e+1; System.out.println(n); } }
now i just gotta make it loop so that it give me 5 then 6.333333333333333 etc. any help
Page 1 of 1
