Форум » Циклы и ветвления » Задание 20, Крылов в2 » Ответить

Задание 20, Крылов в2

Nina.ru: Помогите, пожалуйста с решением. Задание20 из сборника Крылова2020 Получив на вход натуральное десятичное чилсло x, алгоритм печатает два числа: S и P. Укажите наибольшее число X, при вводе которого алгоритм печатает 110, а потом 120 var x, P, S, i: integer; begin readln(x); P:= 0; S:= 7*(x-x mod 25); i:=1; while P < S do begin S:=S-2*i; P:=P+i; i:= i + 1; end; writeln(S,' ',P); end. При запуске получается, что для 1<x<24, (s=7*0=0) вывод 0 0, для 25<x<49, (s=7*25=175) вывод 43 66, для 50<x<74, (s=7*50=350) вывод 110 120 Ответ 74 Как это объяснить?

Ответов - 7

cabanov.alexey: Объяснить что? Почему для 50<x<=74, (s=7*50=350) вывод 110 120?

Nina.ru: Не понятно как решить

cabanov.alexey: Допустим так


Nina.ru: Спасибо

oval: В цикле i увеличивается на 1, i = 1, 2,3, 4, 5.. в P накапливается сумма арифметической прогрессии, после k итераций цикла P = (k-1)k/2 = 120, находим k =16 после k итераций цикла S = 7*(x-x mod 25) - 2 *( (k-1)k/2 ) = 7*(x-x mod 25) - 2 *120 цикл закончит свою работу при S<=P 7*(x-x mod 25) - 2 *120 <= 120 1. 7*(x-x mod 25) <=360 2. 7*(x-x mod 25) - число кратное 7 3. рассмотрим (x-x mod 25): от числа x отняли остаток деления на 25 => число (x-x mod 25) кратно 25 из 1, 2 и 3 следует 7*(x-x mod 25) = 350 откуда x-x mod 25 = 50 или x = 50 + x mod 25, причем 0 <= x mod 25 <= 24 xmax = 50+24 =74 P.S. k - можно было и не находить

Nina.ru: Объясните, пожалуйста, формула P = (k-1)k/2 как получилась

cabanov.alexey: Сумма арифметической прогрессии (a1+an)*n/2



полная версия страницы