Воспользуемся расширенной записью шестнадцатиричного числа в десятичной системе счисления. Тогда 3(a*16²+b*16+c)=b*16²+c*16+a; 767a=208b+13c; 59a=16b+c → a=(16b+c)/59 (1) Здесь a,b,c - шестнадцатиричные цифры, имеющие десятичный эквивалент от 0 до 15. Наложим ограничения. a и b не могут быть нулевыми, поскольку с них начинаются числа, а с может быть и нулем. При b=15 и c=15 значение a по формуле (1) не может быть больше (16*15+15)/59, что в целых числах дает 4. Следовательно, нам надо подобрать такие b и c, чтобы a принимало значения от 1 до 4. Будем подставлять эти значения в (1). 1) При а=1 получаем (16b+c)/59=1 → 16b+c=59. b=59/16=3 (нацело), c=59-16*3=11. Искомое число 13B₁₆ 2) При а=2 получаем (16b+c)/59=2 → 16b+c=118. b=118/16=7 (нацело), с=118-16*7=6. Искомое число 276₁₆
Аналогичным образом находим два остальных числа: 3B1₁₆ и 4EC₁₆
Замечание. Фактически, мы получаем числа 59х1, 59х2, 59х3, 59х4 и переводим их в шестнадцатиричную систему счисления, поскольку в формуле (1) в скобках записано представление расширенное представление шестнадцатиричного числа.
// PascalABC.NET 3.0, сборка 1150 от 22.01.2016 begin var n:=ReadInteger('Количество элементов массива '); var m:=ArrRandom(n,-50,50); m.Println(', '); var a:=0; var b:=0; var c:=0; for var i:=0 to n-1 do begin if m[i]>0 then a:=a+m[i]; if m[i]<m[b] then b:=i; if m[i] mod 5 = 0 then Inc(c) end; var w:=(b+1)+a/(c+1); WritelnFormat('A={0}, B={1}, C={2}, W={3}',a,b+1,c,w); Writeln('Принято, что элементы массива нумеруются от единицы') end.
Тестовое решение: Количество элементов массива 13 -43, -15, 18, -8, -13, -47, -36, 6, -16, 45, 33, 33, -24 A=135, B=6, C=2, W=51 Принято, что элементы массива нумеруются от единицы
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку