У меня есть программа на Java, которую я должен сделать для домашней работы, и вот формула, которую я должен использовать: изображение формулы . Извините, я не являюсь носителем английского языка и не знаю названия этой формулы.
Я написал это решение:
/* Check:
* if: j<=3:
*
* 1/1+sqrt2=0,414213562
* 1/sqrt2+sqrt3=0,317837245
* 1/sqrt3+sqrt4=0,267949192
* res= 0,9999999 =~1.0
*/
double sum = 0;
for (int j = 2; j <= 624; j++)
{
sum += 1 / ((Math.sqrt(j) + Math.sqrt(j + 1)));
}
double res = 0;
res = (double)1 / (1 + Math.sqrt(2)) + sum;
System.out.println("Result is: " + res);
Я проверил программу на значения от j=2
до j=3
, и она дала правильный результат (около 1,0). Поэтому я думаю, что это работает хорошо. Но когда я попробовал до j<=624
, мой результат: 24.000000000000014
1. Как сделать так, чтобы в моей программе результат был 24,0, а не 24,000000000014?
2. Есть ли лучшее решение / исходный код для этой математической формулы? Как называется эта формула на английском?