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

( )Наруто пробрался в логово Орочимару и пытается найти Саске. В логове Орочимару есть T комнат. Каждая дверь в комнату характеризуется количеством печатей n на ней и целочисленными силами печатей a1, a2, ... an. Силы печатей ai не равны нулю и не превосходят 100 по модулю, а n всегда четно. Для того чтобы открыть комнату, Наруто необходимо подобрать такие n печатей с целочисленными силами b1, b2, ..., bn, чтобы a1⋅b1+a2⋅b2+...+an⋅bn=0. Силы печатей Наруто bi также должны быть ненулевыми (как и данные ai) и не превосходить 100 по модулю. Необходимо подобрать печати для всех комнат в логове.

Входные данные
В первой строке задано число T (1≤T≤1000) — количество комнат в логове Орочимару. В следующих строках содержатся описания дверей.

В первой строке описания каждой двери содержится четное число n (2≤n≤100) — количество печатей на двери.

В следующей строке содержится последовательность целых ненулевых чисел a1, a2, ..., an через пробел (|ai|≤100, ai≠0) — силы печатей.

Выходные данные
Для каждой двери на отдельной строке необходимо вывести последовательность ненулевых целых чисел b1, b2, ..., bn (|bi|≤100, bi≠0) через пробел — силы печатей, необходимые для открытия этой двери. Если есть несколько искомых последовательностей, выведите любую из них. Можно доказать, что ответ всегда существует.

Пример
входные данные
2
2
1 100
4
1 2 3 6
выходные данные
-100 1
1 1 1 -1
Примечание
Для первой двери Наруто может использовать силы печатей [−100,1]. Необходимое условие будет выполняться: 1⋅(−100)+100⋅1=0.

Для второй двери Наруто может использовать силы печатей [1,1,1,−1]. Необходимое условие будет выполняться: 1⋅1+2⋅1+3⋅1+6⋅(−1)=0.

Показать ответ
Ответ:
жони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 оценок)
Ответ:
kekIvanovi4
kekIvanovi4
31.03.2020 07:57
Class OftenChar{
 public static void main(String args[]){
  java.util.Scanner in = new java.util.Scanner(System.in);
  String string = in.nextLine(); char chars[] = new char[4];
  chars[0] = in.nextLine().charAt(0); chars[2] = in.nextLine().charAt(0);
  for(int sChar = 0; sChar<string.length(); sChar++)
   if(string.charAt(sChar)==chars[0])chars[1]++;
   else if(string.charAt(sChar)==chars[2])chars[3]++;
  System.out.print("\n"+(chars[1]==chars[3]?chars[0]+""+chars[2]:chars[1]>chars[3]?chars[0]:chars[2]));
 }
}
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота