- #include <iostream> 
-   
- using namespace std; 
-   
- int nonzero(int number) //функция,которая считает количество цифр,не равных нулю,кроме последней 
- { 
-   int count = 0; 
-   number /= 10; 
-   while (number != 0) { 
-     if (number % 10 != 0) count++; 
-     number /= 10; 
-   } 
-   return count; 
- } 
- int summa(int number) //функция,которая возвращает сумму цифр числа 
- { 
-   int sum = 0; 
-   while (number != 0) { 
-     sum += number % 10; 
-     number /= 10; 
-   } 
-   return sum; 
- } 
- bool edinica(int number) //функция,которая проверяет есть ли среди цифр числа,кроме последней, единица 
- { 
-   number /= 10; 
-   bool ok = false; 
-   while (number != 0) { 
-     if (number % 10 == 1) ok = true; 
-     number /= 10; 
-   } 
-   return ok; 
- } 
- int kol_vo(int number) //функция,вычисляющая кол-во цифр числа 
- { 
-   int count = 0; 
-   while (number != 0) { 
-     count++; 
-     number /= 10; 
-   } 
-   return count; 
- } 
- int formula(int number) //формула,по которой можно дойти от 1 до 10^(a-1),где a- кол-во цифр числа 
- { 
-   int a = kol_vo(number); 
-   return (5 * a - 1) * (a - 1); 
- } 
-   
- int main() { 
-   //инииализируем переменную t и считываем ее с клавиатуры 
-   int t; 
-   cin >> t; 
-   //инициализируем переменную ni и задаем цикл,который будет работать пока мы вводим значения ni и t>0 
-   int ni; 
-   while (cin >> ni and t > 0) { 
-     //кладем в переменную kol_vo1 значение функции kol_vo от значения ni 
-     int kol_vo1 = kol_vo(ni); 
-     //появляется необходимость создать переменную,которая будет равна значению ni,так как с этим значением 
-     //в дальнейшем будут проводится операции,а в конце программы нам нужно будет обратиться к исходному значению ni  
-     int a = ni; 
-     //задаем массив,размерность которого равна кол-ву цифр числа 
-     int b[kol_vo1]; 
-     for (int i = 0; i < kol_vo1; i++) { 
-       b[i] = a % 10; 
-       a /= 10; 
-     } 
-     //далее производим проверку условия №2,которое описано в решении. Если число проходит условие,то  
-     //выводим соответствующую формулу,указанную в условии №2 
-     bool ok = false; 
-     for (int i = 0; i < kol_vo1 - 1; i++) { 
-       if (b[i] == 0) ok = true; 
-       else { 
-         ok = false; 
-         break; 
-       } 
-     } 
-     if (b[kol_vo1 - 1] > 1 and ok == true) { 
-       cout << summa(--ni) + nonzero(--ni) - edinica(--ni) + formula(ni) << endl; 
-     } 
-     //далее производим проверку условия №1,которое описано в решении. Если число проходит условие,то  
-     //выводим соответствующую формулу,указанную в условии №1 
-     bool ok2 = false; 
-     for (int i = 0; i < kol_vo1 - 1; i++) { 
-       if (b[i] != 0) ok2 = true; 
-     } 
-     if (ok2 == true) cout << summa(ni) + nonzero(ni) - edinica(ni) - 1 + formula(ni) << endl; 
-     //остались крайние случаи,когда число однозначное или кратное 10^n.Проверяем число на эти условия 
-     //и если оно является таковым,выводим соответствующие значения 
-     if (kol_vo1 == 1) cout << ni - 1 << endl; 
-     if (ni == 10 or ni == 100 or ni == 1000 or ni == 10000 or ni == 100000 or ni == 1000000 or ni == 10000000 or ni == 100000000 or ni == 1000000000) cout << formula(ni) << endl; 
-     //декрементируем переменную t 
-     t--; 
-   } 
- }