|
|
|
Последняя задача осталась, помогите решить
|
|||
|---|---|---|---|
|
#18+
Люди добрый у меня последняя задача осталась, помогите решить пожалуйста. Я заколебался уже. Все решил, одну правда при огромной помощи Андрея. В общем если кто поможет буду очень признателен, а то мне 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 15:57:03 |
|
||
|
Последняя задача осталась, помогите решить
|
|||
|---|---|---|---|
|
#18+
ввод-вывод сделаешь сам 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 17:33:15 |
|
||
|
Последняя задача осталась, помогите решить
|
|||
|---|---|---|---|
|
#18+
сорри, все сложнее, завтра напишу как ------------------ Best regards, _bob ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 17:51:16 |
|
||
|
Последняя задача осталась, помогите решить
|
|||
|---|---|---|---|
|
#18+
спасибо. Буду очень ждать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 17:52:30 |
|
||
|
Последняя задача осталась, помогите решить
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2005, 09:15:24 |
|
||
|
Последняя задача осталась, помогите решить
|
|||
|---|---|---|---|
|
#18+
Не знаю, подойдет ли этот пример в качестве решения. Пробовал 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2005, 15:12:39 |
|
||
|
Последняя задача осталась, помогите решить
|
|||
|---|---|---|---|
|
#18+
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, По другому не получается. Только осталось разобрать верно ли это ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2005, 15:30:15 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=32873105&tid=2168315]: |
0ms |
get settings: |
5ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 189ms |
| total: | 293ms |

| 0 / 0 |
