lolydragon
?>

Напишите как решать ниже на 5 языках программирования записан алгоритм. получив на вход число х, этот алгоритм печатает число l. укажите наибольшее нечетное число х, при вводе которого алгоритм печатает 102. var x, l, m: integer; begin readln(x); d: =x; l: =30; m: =456; while l< =m do begin l: =l+d; m: =m-5*d; end; writeln(l); end. алгоритм решения нужен

Информатика

Ответы

tvmigunova551
Алгоритм содержит ошибку: необъявленную переменную d. Фактически она вообще не нужна, потому что d=x и не меняется.
Выводится значение l, которое вычисляется по формуле l=30+kx, где k - количество выполнений тела цикла while.
Получаем уравнение 30 + k·x = 102 → k·x = 72.
Но 72 = 2 × 2 × 2 × 3 × 3 если значение х нечетное, то оно может быть или 3, или 3 × 3 = 9.
В вопросе спрашивается о максимальном х, поэтому проверим, подходит ли х=9.
В этом случае k = 72 / 9 = 8
Значение k определяется условием выполнения цикла l ≤ m,
где m = 456 - 5·x·k.
При k= 8 получаем 102 ≤ 456 - 5×8×9; 102 ≤ 96 - ложно,
но еще при k=7 получаем 30+7×9 ≤ 456-5×7×9; 93 ≤ 141 истинно.

Следовательно, x=9 подходит.

ответ: 9
dakimov

Ваши ошибки:

1) Объявление текстовых переменных и неиспользование их.

2) Ненужный тип longint, зачем такой большой тип?

Типа Integer вполне достаточно (-32 768 … 32 767).

3) Объявление абсолютно ненужной переменной z.

4) Главная ошибка - это непонимание задания, и соответственно неправильно построенный алгоритм.


Попробуйте это, самое оптимальное по времени, минимальное кол-во переменных. Использован метод Гаусса, можно было и арифм. прогрессию.


var

  n: integer;

  text: text;


begin

  assign(text, 'input.txt'); reset(text);

  readln(text, n); close(text);

  

  if (n > 10000) then exit;

  

  assign(text, 'output.txt'); rewrite(text);

  if n < 0 then Writeln(text, -((1 + abs(n)) * (abs(n) / 2) - 1))

  else Writeln(text, (1 + n) * (n / 2));

  close(text);

end.

denisov4

1100111111=1*2^9+1*2^8+0*2^7+0*2^6+1*2^5+1*2^4+1*2^3+1*2^2+1*2^1+1*2^0=512+256+0+0+32+16+8+4+2+1=831

111111111=1*2^8+1*2^7+1*2^6+1*2^5+1*2^4+1*2^3+1*2^2+1*2^1+1*2^0=511

1100011111=1*2^9+1*2^8+0*2^7+0*2^6+0*2^5+1*2^4+1*2^3+1*2^2+1*2^1+1*2^0=799

В двоичную: (делим на 2каждое число до 1 или 0)

1) 4321=1000011100001            

-4320 2160 2          

1 -2160 1080 2          

0 -1080 540 2        

 0 -540 270 2        

  0 -270 135 2      

   0 -134 67 2      

    1 -66 33 2    

     1 -32 16 2    

      1 -16 8 2  

       0 -8 4 2  

        0 -4 2 2

         0 -2 1

          0  

Теперь собираем от последнего остатка до первого выделенные цифры.

2) 3333=110100000101

3) 7372 =1110011001100

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Напишите как решать ниже на 5 языках программирования записан алгоритм. получив на вход число х, этот алгоритм печатает число l. укажите наибольшее нечетное число х, при вводе которого алгоритм печатает 102. var x, l, m: integer; begin readln(x); d: =x; l: =30; m: =456; while l< =m do begin l: =l+d; m: =m-5*d; end; writeln(l); end. алгоритм решения нужен
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

sayfullinmr
shelep19789
Ерохин
igor51766771
natalyaionova
ГазалиеваКозак
Номер 4 это очень кр по инфе ​
Anton-Yurevich222
ipaskarovanv6
Иванович
Pavlovna-Golovitinskaya378
Boris1247
Анна498
karkh267
makarov021106
sinicin80