Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Последняя задача осталась, помогите решить / 7 сообщений из 7, страница 1 из 1
19.01.2005, 15:57:03
    #32872741
Лёшик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Последняя задача осталась, помогите решить
Люди добрый у меня последняя задача осталась, помогите решить пожалуйста. Я заколебался уже. Все решил, одну правда при огромной помощи Андрея. В общем если кто поможет буду очень признателен, а то мне 21-ог сдавать.
1) Прореживание
Фермер решил посадить морковь. Однако всходы оказались слишком густыми, и возникла проблема их проредить. Фермер загадал натуральное число N(2<N<9) и придумал оптимальный с его точки зрения алгоритм выдергивания. Суть алгоритма состоит в следующем:
1) Задаем М, равное 2
2) Нумеруем все ростки натуральными числами, начиная с единицы.
3) Выдергиваем все ростки на которых делится М
4) Увеличиваем М на единицу
5) Если М не превосходит N, переход на шаг 2, иначе – конец процесса.
После прореживания на грядке осталось S(1<S<1000) ростков моркови. Найдите точный диапазон, в котором может находится числа ростков моркови перед началом процедуры прореживания.
Ввод: две строки. В первой записано число N, во второй – число S
Вывод: Интервал, в котором находится число ростков до прореживания.
Пример:
4
5
[15,18]
Спасибо за ранее. Мой ящик alb@parma.ru
...
Рейтинг: 0 / 0
19.01.2005, 17:33:15
    #32873058
_bob
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Последняя задача осталась, помогите решить
ввод-вывод сделаешь сам
s1 = s
for M = N to 2 step -1
s1 = (s1+M)\M + s1
next i
если s1 четная, то [s1-1;s1], если нечетная [s1;s1+1]
------------------
Best regards, _bob
...
Рейтинг: 0 / 0
19.01.2005, 17:51:16
    #32873105
_bob
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Последняя задача осталась, помогите решить
сорри, все сложнее, завтра напишу как
------------------
Best regards, _bob
...
Рейтинг: 0 / 0
19.01.2005, 17:52:30
    #32873110
Лёшик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Последняя задача осталась, помогите решить
спасибо. Буду очень ждать
...
Рейтинг: 0 / 0
20.01.2005, 09:15:24
    #32873721
_bob
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Последняя задача осталась, помогите решить
s1 = s
s2 = s
for M = N to 2 step -1
k2 = 0
do
k1 = k2
k2 = s1\M
s1 = s1+k2-k1
loop until k1<>k2
s1 = k2*M
k2 = 0
do
k1 = k2
k2 = s2\M
s2 = s2+k2-k1
loop until k1<>k2
s2 = (k2+1)*M - 1
next i

ответ будет [s1;s2]





------------------
Best regards, _bob
...
Рейтинг: 0 / 0
20.01.2005, 15:12:39
    #32874993
Андрей Il
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Последняя задача осталась, помогите решить
Не знаю, подойдет ли этот пример в качестве решения. Пробовал 13 комбинаций S и N. Все работает. Осталось только расставить условия для S и N и привести в нужный вид.

Private S, N, M, i, k, S1, S2 As Long
Private YesNo As Boolean

Private Sub Command1_Click()
YesNo = False
S = Val(InputBox("Введите S"))
N = Val(InputBox("Введите N"))
For i = 1 To 1000000
k = i
For M = 2 To N
k = k - k \ M
Next M
If YesNo = False Then
If k = S Then
S1 = i
YesNo = True
End If
Else
If k <> S Then
S2 = i - 1
Me.Caption = S1 & " " & S2
Exit Sub
End If
End If

Next i
End
End Sub
...
Рейтинг: 0 / 0
20.01.2005, 15:30:15
    #32875064
Лёшик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Последняя задача осталась, помогите решить
Private S, N, M, i, k, S1, S2 As Long
Private YesNo As Boolean

Private Sub Command1_Click()
YesNo = False
S = Val(InputBox("Введите S"))
N = Val(InputBox("Введите N"))
For i = 1 To 1000000
k = i
For M = 2 To N
k = k - k \ M
Next M
If YesNo = False Then
If k = S Then
S1 = i +2
YesNo = True
End If
Else
If k <> S Then
S2 = i - 1
Me.Caption = S1 & " " & S2
Exit Sub
End If
End If

Next i
End
End Sub

Я изменил код, добавив s1= i+2
тогда ответ равен 15 и 18,
По другому не получается. Только осталось разобрать верно ли это
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Последняя задача осталась, помогите решить / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]