Есть ответ 👍

50 за сколько единиц в двоичной записи числа (2^2018)−2018?

201
416
Посмотреть ответы 2

Ответы на вопрос:


2^2018 в двоичной системе есть единица и 2018 нулей. 2018=2048-32+2 (исходное выражение трансформировалось в 2^2018-2048+32-2) 2048=2^11 (единица и 11 нулей) 32=2^5 (единица и 5 нулей) 2=10 : ) для начала прибавлю к 2^2018 100000. получится число, у которого (с конца) 5 нулей, затем единица, затем идут 2012 нулей и снова единица. теперь буду вычитать 2 т .е. -10. займу единицу с шестой с конца позиции. будет . теперь нужно вычитать из этого числа 2^11. последние 11 позиций не изменятся (вычитаются нули), а вот для вычета единицы потребуется "зянять" её у самой первой цифры числа. если нарисовать последние 12 цифр исходного числа, картинка будет следующая:   -    100000000000 осталось узнать, сколько единичек стояло на месте многоточия. в 2^11 было 12 цифр, соответственно, получаем 2018-12=2006 позиций, на которых стоят нули. к этим позициям нужно добавить 11 единиц, которые видны в "столбике". итого 2006+11=2017 единиц\ p.s. если понятен принцип решения, советую перерешить еще раз, потому что у меня плохо с арифметикой.  *** есть хорошее свойство: некое десятичное  число n^m  в переводе в n-ичную систему счисления будет в этой системе счисления выглядеть как единица и m нулей. свойство довольно очевидное: при переводе из десятичной системы в n-ичную мы исходное число будем делить на n, т.е. получим остаток от деления 0 и частное n^(m-1). и так будет продолжаться m раз, пока мы не разделим число само на себя и получим единицу в последнем  частном. отсюда 1 и m нулей.

  program pr1; uses crt;

  var a,b,c: integer; y: real;

  begin clrscr;

writeln('введите a,b,c');

  readln(a,b,c);  

y=b+sqrt(b*b+4*a*c)/(2*a)-a*a*a*c+b*b-2;

writeln('y=', y: 5: 2);

readln;

end.

 

 

 

 

 

 

 

Популярно: Информатика