![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 06.10.2013
Сообщений: 10
|
![]()
Пакостный попугай научился выдергивать у дедушки Василия волос, которое еще осталось у того на голове. Начав с одного волоса, он ежедневно увеличивал, порцию вдвое. Через сколько дней дедушке не понадобится расческа, если сначала у него на голове было аж N волос.Только стал учить циклы сильно не ругайте)) мой код
Код:
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 02.03.2008
Сообщений: 2,504
|
![]()
Если бы я был компилятором, то написал бы, что переменные m, v не инициализированы.
То есть синт. ошибки нет, но программа ничего не считает. И выведет или черт знает что, или просто число равное n .. и мгновенно закроется. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 06.10.2013
Сообщений: 10
|
![]()
Исправил программа работает но)))не то)
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 02.03.2008
Сообщений: 2,504
|
![]()
Оператор for обычно используется, если количество циклов известно заранее. А здесь лучше использовать while у дедушки остались волосы, или repeat пока не останется ни одного
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,378
|
![]()
Есть и другое, более простое решение.
В данной задаче выполняются условия геометрической прогрессии, в которой: а1 = 1; q = 2; Сумма членов прогрессии равна N. Используем формулу для суммы k членов прогрессии: N = a1*(q^k-1)/(q-1); Отсюда получаем: N*(q-1)/a1 + 1= q^k; Логарифмируем обе части и получим формулу для k: k = ln(N*(q-1)/a1 +1)/ln(q); Подставим известные параметры и получим формулу для вычисления k - числа дней. Код:
Как-то так, ...
Как-то так, ...
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 02.03.2008
Сообщений: 2,504
|
![]()
ViktorR, k надо еще округлить как то.
Может быть, товарищу надо с циклами. Чисто методически. А то получается, задание не по прогр. а по математике. |
![]() |
![]() |
![]() |
#7 | |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,378
|
![]()
Округлить - это да.
Волос то целое число, да и дней - тоже. Но может ведь оказаться, что в следующий день попугай не сможет выдернуть заданное число волос. Об этом в постановке задачи ни слова. ![]() С точки зрения метода решения. Креативное мышление должно развиваться в первую очередь. Иначе как-бы изобрели метод расчета суммы членов арифметической прогрессии? В самой постановке задачи нет заключения о том, что требуются именно циклы. А фраза: Цитата:
И что, сразу их (циклы) вот на такой задаче? ![]() Как-то так, ... PS: Я уж не говорю о том, что в постах по этой теме нет оценки того, сколько волос вырвано (надо бы суммировать). И впринципе, цикл может быть и по N. Все равно цикл должен будет закончиться раньше, чем будет достигнут его конец. Просто в теле цикла можно вставить сравнение на превышение числа вырванных волос над N и сделать break. ![]() Ну это в том случае, если мы изучаем циклы и то, что к ним принадлежит.
Как-то так, ...
|
|
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Повторное вхождение одного и того же числа (C) | Alexandr- | Помощь студентам | 1 | 07.09.2013 21:27 |
скачивание одного и того же файла несколько раз. | Miha1986 | Работа с сетью в Delphi | 1 | 16.01.2011 21:36 |
Несколько DLL. Использование одного и того же подуля. | Selestis | Lazarus, Free Pascal, CodeTyphon | 1 | 07.01.2011 13:25 |
Последовательная отсылка одного и того же сообщения со списка UIN на 1 номер ICQ | Ra1n | Работа с сетью в Delphi | 4 | 29.01.2010 16:37 |
Как избежать повторение одного и того же номера дважды | CockPuncher | Microsoft Office Excel | 6 | 03.09.2009 09:53 |