Определить объём памяти, необходимой для хранения паролей и сведений пользователей - 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; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д