11. Каждый сотрудник предприятия получает электронный пропуск, на котором записаны личный код сотрудника и некоторая дополнительная информация. Личный код состоит из 10 символов, каждый из которых мо- пожет быть одной из 22 допустимых заглавных латинских букв или одной из 10 цифр. Для записи личного кода на пропуске отведено минимально возможное целое число байт. При этом используют посимвольное кодирование, все символы кодируют одинаковыминимально возможным количеством бит. Кроме личного кода на пропуске хранится дополнительная информация, занимающая 20 байт на одного сотрудника. Определите объём памяти (в байтах), необходимый для хранения сведений о 50 сотрудниках. В ответе запишите только целое число - количество байт.
#include <iostream>
using namespace std;
int main()
{
int i,n,n2=0,n3,digit;
cin >> n; //Вводим число. Может быть отрицательным.
n3 = abs(n); //Для удаления цифр нужно положительное число
i = 1; //Переменная для количества десятков.
while(n3>0) { //Условия для выполнения цикла
digit = n3 % 10; //Получаем последнюю цифру
n3 = n3 / 10; //Уменьшаем число
if(digit!=3 && digit!=6){ //Проверка цифры
n2 = n2 + digit * i; //Создаем число умножая на десятки
i = i * 10; //Добавляем десятки
}
}
cout << ((n<0)?-n2:n2); //Вывод результата с добавление знака
}
Объяснение:
Есть цикл While
Код для питона:
def solve(a):
def count(r,c):
return a[r][c] if r >= 0 and r < len(a) and c >= 0 and c < len(a[r]) and a[r][c] != None else 0
a[0][0] = 1
for step in range(1, len(a) + len(a[0]) - 1):
row, col = (0, step) if step < len(a[0]) else (step - len(a[0]) + 1, len(a[0]) - 1)
while col >= 0 and row < len(a):
if a[row][col] != None:
a[row][col] = count(row-1, col) + count(row, col-1)
row, col = row+1, col-1
return a[-1][-1]
Поле задаём в виде списка списков:
field = [
[0,0,0,0,0,None,None,None],
[0,0,None,0,0,0,0,None],
[0,0,0,0,0,0,0,0],
[0,None,0,0,0,0,0,0],
[0,0,0,0,None,0,0,0],
[0,0,0,0,0,0,0,0],
[None,None,0,0,0,None,0,0],
[None,None,0,0,0,0,0,0]
]
Объяснение:
Если нужно просто решение, то я приложил картинку