Форум программистов, компьютерный форум CyberForum.ru

Формула подсчета количества итераций цикла for - C++

Восстановить пароль Регистрация
 
nexvall
 Аватар для nexvall
6 / 0 / 0
Регистрация: 21.08.2012
Сообщений: 1
23.10.2013, 15:19     Формула подсчета количества итераций цикла for #1
Доброго времени суток
Помогите ответом/советом/уч. материалом

Пусть,
C++
1
for( int i = 1; i <= 10; i++ ) ...
имеем 10 итераций цикла

C++
1
for( int i = 11; i <= 17; i += 2 ) ...
имеем 4 итерации цикла

а какая формула подсчета кол-ва итераций в общем виде:
C++
1
for( int i = A; i < B; step) ...
и
C++
1
for( int i = A; i > B; step) ...
а также учет знака <= ( >= )
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Hunter13ua
46 / 46 / 5
Регистрация: 25.10.2011
Сообщений: 183
23.10.2013, 15:23     Формула подсчета количества итераций цикла for #2
Впервые вижу такой вопрос обычно это подсчитывается на интуитивном уровне.
C++
1
for( int i = A; i < B; step)
Кол-во = (B-A)/step. Если <=, то В на единицу больше. Как-то так, вроде бы
Асурус
2 / 2 / 1
Регистрация: 27.07.2012
Сообщений: 40
24.10.2013, 13:40     Формула подсчета количества итераций цикла for #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от nexvall Посмотреть сообщение
Код C++
1
for( int i = A; i < B; step) ...
(B - A)/step

Цитата Сообщение от nexvall Посмотреть сообщение
Код C++
1
for( int i = A; i > B; step) ...
(A - B)/step

Если используется операция сравнения <= или >=, то тогда (B - A + 1)/step и (A - B + 1)/step.
При получения не целого числа, отбрасывается дробная часть, столько итераций и будет произведено.

Добавлено через 27 минут
Хотя по правде эти формулы подходят только для шага в единицу(x++), надо подумать...

Добавлено через 1 час 9 минут
Вот конечная формула, тут всё работает:
A = B; A < C; step или A = C; A > B; step
(C - B - 1)/step + 1
и также для операций <= или >=, но только плюсуем единицу, или убираем -1, вот так:
(C - B + 1 - 1)/step + 1, или (C - B)/step + 1
Очень надеюсь получить свой первый плюс ))) т.е. + 1 спасибо )))

Добавлено через 1 минуту
Если число дробное, то учитывается только целая часть.

Добавлено через 17 минут
А так же step - модуль приращения, т.е. того, что плюсуется или отнимается...

Добавлено через 16 часов 36 минут
PS Эта формула работает только с конечными циклами, при других будет ошибка.
murfik
 Аватар для murfik
6 / 6 / 0
Регистрация: 21.07.2012
Сообщений: 138
11.08.2015, 14:00     Формула подсчета количества итераций цикла for #4
Спасибо ваша формула помогла, все реально работает!
Yandex
Объявления
11.08.2015, 14:00     Формула подсчета количества итераций цикла for
Ответ Создать тему
Опции темы

Текущее время: 16:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru