Автор | Сообщение |
|
Отправлено: 26.05.15 15:34. Заголовок: И снова задание 21
Здравствуйте, помогите разобраться! Задание 21 номера 69, 70, 71. Почему в задании №69 границы находятся не в диапазоне [7..22], а в диапазоне [8..22]. А в задании № 70 наоборот, границы находятся не в диапазоне [3..18]. а в диапазоне [3..19]. А в номере №71 вообще не понятно, взяты границы не [5..27] - ведь К=13 входит в этот диапазон, а границы [11..44]. Почему?????
|
|
|
Ответов - 13
[только новые]
|
|
|
| Администратор
|
Сообщение: 849
|
|
Отправлено: 26.05.15 15:40. Заголовок: Galina14 пишет: помо..
Galina14 пишет: цитата: | помогите разобраться! Задание 21 номера 69, 70, 71. |
|
Во время подготовки к экзамену (т.е. сейчас) программу можно набрать и запустить, поиграться с ней, пройти в пошаговом режиме, посмотреть, как меняются переменные и т.п. Все остальное - чистая арифметика.
|
|
|
|
Отправлено: 30.05.15 06:09. Заголовок: задание 21
Спасибо большое, натворила математических ошибок, вот с интервалами и напутала. Все свои ошибки нашла!!!
|
|
|
|
Отправлено: 13.04.16 11:58. Заголовок: Задание 21, для тренировки 71
Не получается верхняя граница. (88+12)/2=50
|
|
|
|
Отправлено: 26.04.16 15:22. Заголовок: 21
Помогите!!!! не получается 44!!!
|
|
|
|
Отправлено: 14.05.16 18:43. Заголовок: №21
var k, i : longint; function f(n: longint): longint; begin f:= n*n*n - 5*n; end; begin readln(k); i := 1; while f(i) < k do i := i + 1; if 2*f(i)-k <= k-f(i-1) then writeln(i) else writeln(i-1); end. Не сходится с ответом. У меня верхняя граница 50, нижняя 11, а ответ 36! Подскажите, пожалуйста. Заранее спасибо!
|
|
|
|
Отправлено: 14.05.16 18:50. Заголовок: №21
var k, i : longint; function f(n: longint): longint; begin f:= n*n*n - 5*n; end; begin readln(k); i := 1; while f(i) < k do i := i + 1; if 2*f(i)-k <= k-f(i-1) then writeln(i) else writeln(i-1); end. Не сходится с ответом. У меня верхняя граница 50, нижняя 11, а ответ 36! Подскажите, пожалуйста. Заранее спасибо!
|
|
|
|
Отправлено: 14.05.16 20:11. Заголовок: Е пишет: Не сходитс..
Е пишет: цитата: | Не сходится с ответом. У меня верхняя граница 50, нижняя 11, а ответ 36! Подскажите, пожалуйста. Заранее спасибо! |
| 1) При k=13 у Вас выполняется цикл while 3 раза, следовательно i:=4, тогда на экран выводится значение 3 (поскольку 100 > 26) 2) Поэтому для случая, когда на экран выводится i-1, k = 13...44 3) Для второго случая у Вас k = 11, 12 4) В итоге получается k= 11...44, всего 34 значения.
|
|
|
|
Отправлено: 04.06.16 14:19. Заголовок: №70
Помогите, пожалуйста! Не получается нижняя граница. У меня 7, в ответе 3. 6-k <=k-8 заранее спасибо!
|
|
|
|
Отправлено: 04.06.16 15:14. Заголовок: ELE пишет: Не получ..
ELE пишет: цитата: | Не получается нижняя граница. У меня 7, в ответе 3. |
| Вы забыли тот случай, когда цикл while не выполнится ни разу, т.е. при условии, что f(1) >= k. Отсюда k <= 6. Но при этом на экран выводится 1, поэтому у Вас будет еще и условие f(1) - k <= k - 2*f(0). Отсюда k >= 3. Объединяя эти два условия получим, что k = 3, 4, 5, 6. Вот Ваши недостающие четыре значения. В итоге получаем 13 + 4 = 17 значений.
|
|
|
|
Отправлено: 08.02.17 19:51. Заголовок: №21 крылов ушаков 1 вар
var k, i : longint; function f(n: longint): longint; begin f:= n*n+8; end; begin readln(k); i := 0; while f(i) < k do i := i + 1; if f(i)+f(i+1) <= k*2 then writeln(i) else writeln(i-1); end. сколько значений"k", при которых тот же ответ, что и при к=40? даже"поиграв в программе" получаем нижнюю границу 34, верхнюю 44, т.е. ответ 11, а не 12. Хотя в теории получилось 29<=k<38 Заранее спасибо! end.
|
|
|
|
| Администратор
|
Сообщение: 1262
|
|
Отправлено: 08.02.17 20:09. Заголовок: ELE пишет: т.е. отве..
ELE пишет: Да. цитата: | Хотя в теории получилось 29<=k<38 |
|
Нет. Есть желание разобраться - приводите решение. Там наверняка ошибка.
|
|
|
|
|
Отправлено: 08.02.17 21:11. Заголовок: f(4)=24 f(5)=33 f(6)..
f(4)=24 f(5)=33 f(6)=44 находим для i-1 24+33<=2*k k>=28,5 для i 33+44>2*k k<38,5
|
|
|
|
| Администратор
|
Сообщение: 1263
|
|
Отправлено: 08.02.17 21:37. Заголовок: ELE пишет: находим д..
ELE пишет: цитата: | находим для i-1 24+33<=2*k k>=28,5 для i 33+44>2*k k<38,5 |
|
Тут немного хитрее. Цикл останавливается, когда f(i) >= k. При этом, f(i+1)>f(i), поэтому f(i+1)>k. Следовательно, f(i)+f(i+1) >2*k всегда, и всегда выводится i-1. Остается определить, сколько чисел попадает в ту же группу, что и 40 - это все числа на отрезке [34;44]. Их 11. Для них i=6 после окончания цикла и выводится i-1=5.
|
|
|
|