using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading.tasks;
namespace kektus
{
class program
{
static void printarr(int[][] arr)
{
foreach (var str in arr)
{
foreach (var el in str)
console.write($"{el}\t");
console.writeline();
}
}
static void main(string[] args)
{
int m;
int n;
try
{
console.write("m = "); m = int.parse(console.;
console.write("n = "); n = int.parse(console.;
}
catch
{
console.writeline("ошибка ввода");
return;
}
if (n < 0 || m < 0)
{
console.writeline("ошбка ввода");
return;
}
console.writeline("m = {0}; n = {1}.", m, n);
int[][] arr = new int[m][];
var rand = new random();
for(int i = 0; i < m; ++i)
{
arr[i] = new int[n];
for (int j = 0; j < n; ++j)
arr[i][j] = rand.next(10,99);
}
console.writeline("исходный массив: ");
printarr(arr);
console.writeline();
int[][] buffer = new int[n][];
for (int j = 0; j < n; ++j)
buffer[j] = new int[m];
for (int i = 0; i < m; ++i)
for (int j = 0; j < n; ++j)
buffer[j][i] = arr[i][j];
arr = buffer;
console.writeline("преобразованный: ");
printarr(arr);
console.writeline();
}
}
}
уровень сложности-повышенный
в некоторой стране автомобильный номер состоит из 7 символов. в качестве символов используют 18 различных букв и десятичные цифры в любом порядке. каждый такой номер в компьютерной программе записывается минимально возможным и одинаковым целым количеством байтов, при этом используют посимвольное кодирование и все символы кодируются одинаковым и минимально возможным количеством битов.
определите объем памяти, отводимый этой программой для записи 60 номеров.
240 байт
300 байт
360 байт
420 байт
решение:
необходимо закодивовать: 10 цифр (от 0 до 9)+18 букв=28 символов.
для кодирования необходимо 5 бит, т.к. 16< 28< 32. 32=25.
для кодирования 1 автомобильного знака нужно: 5*7=35 бит.
35 нацело не делится на 8. а нам по условию дано,что 1 автомобильный номер должен кодироваться целым количеством байтов. поэтому округляем 35 до 40.
40\8=5 байт-отводится на 1 автомобильный номер.
для кодирования 60 номеров нужно: 5*60=300 байт.
Поделитесь своими знаниями, ответьте на вопрос:
Чему равен результат сложения двух чисел, записанных римскими цифрами: mcm + lxviii?