Определить объём памяти, необходимой для хранения паролей и сведений пользователей - C#
Формулировка задачи:
Есть задача:
"При регистрации в компьютерной системе каждому пользователю выдаётся пароль, состоящий из a символов и содержащий только символы
из b-символьного набора: [символы алфавита]. В базе данных для хранения сведений о каждом пользователе отведено одинаковое
и минимально возможное целое число байт. При этом используют посимвольное кодирование паролей, все символы кодируют одинаковым
и минимально возможным количеством бит. Кроме собственно пароля, для каждого пользователя в системе хранятся дополнительные сведения, для чего отведено c байт на одного пользователя.
Определите объём памяти (в байтах), необходимый для хранения сведений
о d пользователях. В ответе нужно вывести только целое число – количество байт."
Помогите, пожалуйста, её оформить
Решается она так: b символов нужно сравнить с ближайшей степенью числа 2 и найти её, т.е, если b≤2^n, то нужно найти n. Далее найти объём памяти для всех символов: n*a. Так как для записи используются байты, то нужно найти такое число m≥(n*a), остаток от которого при делении на 8 равен нулю. Потом (m+c) * d = f. Вывести f.
помогите, пожалуйста
Решение задачи: «Определить объём памяти, необходимой для хранения паролей и сведений пользователей»
textual
Листинг программы
- class Program
- {
- static void Main(string[] args)
- {
- int alphabet;
- int pass;
- int count;
- int adddata;
- Console.WriteLine("Введите количество символов:");
- alphabet = int.Parse(Console.ReadLine());
- Console.WriteLine("Введите количество паролей:");
- pass = int.Parse(Console.ReadLine());
- Console.WriteLine("Введите количество пользователей:");
- count = int.Parse(Console.ReadLine());
- Console.WriteLine("Введите количество памяти для дополнительных данных:");
- adddata = int.Parse(Console.ReadLine());
- int volume = Passwords(alphabet, pass, count, adddata);
- Console.WriteLine("Объем памяти = " + volume);
- }
- static int Passwords(int n_alphabet, int length_Password, int count_Password, int add_data)
- {
- int result = 0;
- int length_code, cod;
- length_code = 1;
- cod = 2;
- while ( cod < n_alphabet)
- {
- cod *= 2;
- length_code++;
- }
- cod = length_code * length_Password; //длина пароля в битах
- int lenPassword = cod / 8;
- if (cod % 8 != 0) lenPassword++; //длина пароля в байтах
- int All_length = (lenPassword + add_data)* count_Password; //память общая
- result = All_length;
- return result;
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д