Ну, условие крайне странное, я понимаю так, что числовой промежуток дан в 10тичной системе счисления, и каждое целое число на промежутке необходимо перевести в 16ричное. Если промежуток [28; 30], то это означает что туда входят такие целые числа как 28, 29, 30 (если промежуток обозначается квадратными скобками '[' и ']', то это включая числа что указаны его границами, если же круглыми '(' и ')', то не включая их.
Перейдем к переводу десятичных чисел в шестнадцатиричную систему счислени. Для этого делем число на 16, паралельно записывая его остаток и продолжая до тех пор, пока оно не станет меньше 16. 28 / 16 = 1; остаток 12
Тут ничего сложного, пользуемся табличкой переводов, смотрим, 12 из десятичной в 16ричной это буква C, а 1 оставляем как есть. Теперь запишим полученные числа: 1C - Это 28 в 16ричной
Точно так же переводим из 10тичной в 16ричную 29: 29/16 = 1; остаток 13 Получается 1D
Ну и как не трудно догадаться, 30 в 16ричной будет 1E. Но для наглядности проведем расчёты: 30/16=1; остаток 14
Постскриптум: — Задание сформулированно крайне не понятно и вот почему: Нижним индексом, по обыкновению, указывают систему счисления текущего числа, но тогда нет никакого смысла переводить в 16ричную систему из 16ричной. — Другой вариант, что 28 и 30 это числа указанные не в 16ричной, но они могут быть в любой системе счисления где больше 8 цифр :)
Если предерживаться первого предположения, то нужно просто записать все цифры 16ричной системы счисления от 28 до 30 включительно, тогда это будет: 28, 29, 30 Что вообще смысла не имеет, так что не претендую на идеально правильное решение, но это единственное адекватное, что пришло мне в голову. Может этот идеотизм как-то и по другому закручен :D
int n = 5, x = n - 1, y = n, d = -1, r = 25, a[10][10]; // тут собственно сама матрица, n - длина // х,у - координаты ячейки, d - шаг =+1 при движении вправо и вниз, = -1 при движении влево и вверх // r - число в ячейке for (int i = x; i >= 0; d *= -1) // тут меняем знак { for (int j = i; j >= 0; --j) a[x][y += d] = r--; // двигаемся вправо for (int j = --i; j >= 0; --j) a[x += d][y] = r--; // двигаемся вверх } for (int i = 0; i<n; i++) // тут все просто циклы для вывода матрицы { for (int j = 0; j<n; j++) { printf("%3d ", a[i][j]); } cout << "\n"; }
При a=5 и x=5 ax-3x-4a+12=5*5-3*5-4*5+12=25-15-20+12=2
ответ: 2