я работаю над следующей проблемой:Наименьшее целое число, большее или равное гармонический ряд входных
Я понимаю, что мой код откусил, но я хочу, чтобы создать цикл, который определит, будет ли целое число x (входное значение) не меньше или равно сумме гармонического ряда.
Вот то, что я до сих пор:
function n =one_per_n(x)
if x > 10000
n = -1;
end
total = 0;
i = 0;
for i = 1:10000
if x >= total
n = ceil(total);
else
total = (1/i) + total;
end
end
Я добавил свою попытку на время цикла. Я понимаю, что это неправильно, но любая помощь будет оценена по достоинству.
function n =one_per_n(x)
if x > 10000
n = -1;
end
total = 0;
i = 0;
for i = 1:10000
while total <= x
total = (1/i) + total;
end
end
n = total;
Использование 'break' для выхода из цикла, как только вы обнаружили, 'n' (в операторе' if') – buzjwa
Кроме того, нет необходимости увеличивать 'i' через' i = i + 1; '. Это уже сделано самим циклом 'for' – buzjwa
Прочитайте это: [Записи управления контуром] (http://www.mathworks.com/help/matlab/matlab_prog/loop-control-statements.html) – buzjwa