Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.09.2013, 20:17   #1
ryouzaki
 
Регистрация: 02.09.2013
Сообщений: 4
По умолчанию Проваливается 1 цикл

Добрый день всем,

Решаю разные задачки из книги Шень, наткнулся на задачу с факториалом, точнее нужно вычислить сумму при заданном n выражения 1/0!+1/1!...+1/n!. без рекурсии. код следующий
Код:
double n=7;
			double f=1;
			double sum=0;
			for (double i=n;i>=1;i--)
			{
				System.out.println(i);
				f=f*i;
				if (i==1)
				{
					sum=sum+1/f;
					
					n=n-1;
					i=n;
					f=1;

				}
			}
Результат его работы-
7.0
6.0
5.0
4.0
3.0
2.0
1.0
5.0
4.0
3.0
2.0
1.0
4.0
3.0
2.0
1.0
3.0
2.0
1.0
2.0
1.0
1.0
Как видно "провалилась" шестерка- 7,6,5,4,3,2,1 и идет пятерка, хотя должен быть цикл с шестеркой. Проблему я решил, подняв присваивание i=n над n=n-1. Почему проблема решилась я так и не понял, просто как-то интуитивно получилось. Объясните, пожалуйста!

Последний раз редактировалось ryouzaki; 02.09.2013 в 20:19.
ryouzaki вне форума Ответить с цитированием
Старый 02.09.2013, 20:42   #2
Ezhik Kihze
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 639
По умолчанию

Потому что после каждой итерации цикла выполняется блок i--
ICQ: 677936656 Gmail: ekEmbed@gmail.com
Ezhik Kihze вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проваливается после цикла ввода С++ makashello Помощь студентам 4 12.07.2013 17:06
написать процедуры для “Цикл For ... Next ” и «Цикл Do ... Loop» по ниже приведенному условию Кристина_Патачиц Microsoft Office Excel 3 17.04.2013 17:01
Цикл по времени - Как сделать так чтобы цикл выполнялся к примеру 10 секунд ? Anarki Общие вопросы C/C++ 3 13.11.2009 19:23
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 01:34