Есть ответ 👍

С++ СИРИУС Факториал Для заданного натурального N найти последнюю ненулевую цифру числа N!.

Входные данные

Задано число число N(0 ≤ N ≤ 1 000 000).

Выходные данные

Выведите одно число — последнюю ненулевую цифру факториала числа N.

Примеры
Ввод
5
Вывод
2

Ввод
8
Вывод
2

239
426
Посмотреть ответы 2

Ответы на вопрос:

ллл107
4,8(14 оценок)

#include <bits/stdc++.h>

using namespace std;

int n;

unsigned long long k = 1;

int main() {

   

   ios_base::sync_with_stdio(0);

   cin.tie(0);

   cout.tie(0);

   

   cin >> n;

   while (n > 1) {

       k *= n;

       while (k % 10 == 0)

           k /= 10;

       k %= 10;

       n--;

   }

   cout << k;

}

Для миллиона работает за 0.2 секунды. Сложность, вроде как, получается O(n).


A  b   c     a& b     b& c       (a& b) v (b& c)       0   0   0       0           0                     0                      0   0   1        0         0                   0                           0   1   0         0         0                   0                     0   1   1        0         1                     1                           1   0    0         0         0                   0                       1   0   1        0         0                   0                         1     1   0        1         0                   1                       1     1   1       1         1                   1   использовали таблицу сложения и умножения лог.переменных для трех высказываний при сложении 0 v 0=0       0 v 1=1 v 0 =1     1v1=1 при умножении 0 & 0 =0     0& 1=1& 0 =0     1& 1=1     

Популярно: Информатика