fork(2) download
  1.  
  2. import java.util.*;
  3. import java.lang.*;
  4. import java.io.*;
  5.  
  6. class Brovko
  7. {
  8. public static double fact(int itser){
  9. return itser < 2? 1 : itser * fact(itser - 1);
  10. }
  11. public static void main (String[] args) throws java.lang.Exception
  12. {
  13. int itser=0, itfrac=1;
  14. double series=0, epsilon;
  15. Scanner in = new Scanner(System.in);
  16. epsilon=in.nextDouble();
  17. do{
  18. series+=1/fact(itser);
  19. itser++;
  20. }
  21. while(Math.E-series>epsilon);
  22. System.out.format("series=%10.10f, itser=%d \n", series, itser);
  23. double sum3=0, fraction;
  24. do{
  25. for (int k = itfrac; k >= 1; k--){
  26. if ((k % 2) == 0){
  27. sum3 = 1 / (2 + sum3);
  28. }
  29. else{
  30. sum3 = 1 / (k - sum3);
  31. }
  32. }
  33. if (Math.abs(Math.E - (sum3 + 1))<epsilon){
  34. break;
  35. }
  36. itfrac++;
  37. }
  38. while (itfrac < itser + 10);
  39. fraction=1+sum3;
  40. System.out.format("fraction=%10.10f, itfrac=%d \n", fraction, itfrac);
  41. if(itfrac<itser){
  42. System.out.printf("С заданной погрешностью epsilon=%5.10f, бесконечная дробь, с количеством итераций itfrac=%d быстрее сходится к числу е, чем ряд, c количевством итераиций itser=%d.\n", epsilon, itfrac, itser);
  43. }
  44. else{
  45. System.out.printf("С заданной погрешностью epsilon=%5.10f, ряд, с количеством итераций itser=%d быстрее сходится к числу е, чем бесконечная дробь, c количевством итераиций itfrac=%d.\n", epsilon, itser, itfrac);
  46. }
  47. }
  48. }
Success #stdin #stdout 0.17s 321344KB
stdin
0.00001	9	7
stdout
series=2.7182787698, itser=9 
fraction=2.7182758396, itfrac=7 
С заданной погрешностью epsilon=0.0000100000, бесконечная дробь, с количеством итераций itfrac=7 быстрее сходится к числу е, чем ряд, c количевством итераиций itser=9.