Добрые люди, помогите, пожалуйста, с задачей. Условие:
Найти сумму чисел s=1+1/3+1/5+…+1/(2n+1), для всех значений членов ряда больших заданного числа d и для первых m членов ряда.
Сделать требуется на Java Script при помощи циклов.
Пробовал всё, что позволяют знания. Пришел к тому, что я не особо понимаю условие. А именно, допустим, найти сумму для всех значений ряда больших заданного d, хорошо, ряд это наша формула? допустим да, она ведь идёт до бесконечности, если я задам число 15, почему результат 5, а не бесконечность?
Я вот тоже думал, что нужно ввести n, но на картинке поля для ввода n нет. Код решения с картинки выглядит примерно так:
Первый случай:
var k = parseInt(document.getElementById('k').value);
var sum = 0;
var b = 1;
for (var i = 1; i <= k; i++) {
b = i;
for (j = 1; j < i; j++) {
b = b * i;
}
sum = sum + b;
}
document.getElementById('result').innerHTML = sum;
Второй случай:
var d = parseInt(document.getElementById('d').value);
var sum = 0;
var b = 1;
var i=1;
var a=0;
while (a<d) {
for (var j = 1; j < i; j++) {
b = b * i;
}
if (b>d) break;
sum = sum + b;
a=b;
i=i+1;
b=i;
}
document.getElementById('result1').innerHTML = sum;
Член ряда уменьшается. Как только он станет меньше числа d надо заканчивать.
почему результат 5, а не бесконечность?
А картинка-пример дана для другого ряда, где члены ряда увеличиваются, поэтому там другое условие - “не превышающих”, поэтому они закончили считать, когда значение члена ряда превысило 5 (33=27, 27 > 5, к 1 + 4 не прибавляем 27).