В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История

Int i , j , k = 0; for (int i = 1; i <= n; i++) { for (int j = 1; j < n; j += i) { k=k+j; } } Сложность алгоритма

Показать ответ
Ответ:
жони12
жони12
21.10.2022 14:53
1)  Один байт = 8 бит, максимальное число 2^8 - 1 = 255, если числа без знака.  Для знаковых чисел старший бит отводится под знак числа, следовательно, минимальное число = - 2^7 - 1
 = - 127,  максимальное число = + 127
2)  Число 1607, ячейка двухбайтовая, один бит под знак, следовательно, под число отводится 15 бит,  в двоичном представлении 1607(10) = 11001000111(2), дополняем до 16 бит, старший бит - знаковый - нулевой, так как число положительное
= 0000011001000111(2) - это двоичное представление в двухбайтовой ячейке, чтобы получить шестнадцатиричное представление, разбиваем число справа - налево по 4 бита
0000  0110  0100  0111  и записываем в шестнадцатиричном виде 
0111(2) = 7(16)   0100(2) = 4(16)   0110(2) =6(16)   0000(2) = 0(16)
1607(16) = 0647(16) или без старшего не значащего нуля  = 647(16)
3) для получения дополнительного кода числа, находят обратное число, или инверсию числа,
для этого каждый бит числа изменяют на противоположный, 1 на 0, 0 на 1
105(10) = 1101001(2) - это и есть дополнительный код числа - 105, т.е. дополнительным кодом
числа (- а)   будет число а.
Найдем дополнительный код в однобайтовой ячейке числа 105(10) = 01101001(2),
а) находим обратное  01101001(2)  ->(обратное) ->10010110(2)
б) дополнительный код-> обратный код + 1 ->(дополнительный)->10010111(2), а это число - 105
потому, что отрицательные числа представляются в дополнительном коде.
Если для числа - 105 найти дополнительный код, то получим число 105
10010111(2)->(дополнительный)->01101000+1->01101001 = 69(16) = 16*6+9 = 96+9 = 105
0,0(0 оценок)
Ответ:
akulkaeva78
akulkaeva78
27.05.2021 07:46

#include <iostream>

using namespace std;

int main() {

setlocale(LC_ALL, "");

int N = 10;

int max = -9999999;

int sum = 0;

int choise = 0;

int arr[N] = {0};

cout << "Введите 10 значений: ";

for(int i = 0; i<N; ++i) {

cin >> arr[i];

}

cout << "Введите действие (1 - +, 2 - макс. значение, 3 - колво отр. значений)";

cin >> choise;

if(choise==1) {

for(int i = 0; i<N; ++i) {

sum+=arr[i];

}

cout << endl << "Сумма: " << sum;

}

if(choise==2) {

for(int i = 0; i<N; ++i) {

if(arr[i]>max) {

max = arr[i];

}

}

 cout << endl << "Макс. знач: " << max;

}

if(choise==3) {

 for(int i = 0; i<N; ++i) {

   if(arr[i]<0) {

     ++sum;

   }

 }

 cout << "Колво отр. знач: " << sum;

}

 if(choise!=1&&choise!=2&&choise!=3) {

   cout << "Введите корректное значение.";

 }

 return 0;

}

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота