Предмет: Информатика,
автор: mnb5757
С++ СИРИУС Факториал
Для заданного натурального N найти последнюю ненулевую цифру числа N!.
Входные данные
Задано число число N(0 ≤ N ≤ 1 000 000).
Выходные данные
Выведите одно число — последнюю ненулевую цифру факториала числа N.
Примеры
Ввод
5
Вывод
2
Ввод
8
Вывод
2
akmalsodikov04:
а откуда
Ответы
Автор ответа:
1
#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).
Похожие вопросы
Предмет: Окружающий мир,
автор: Iliya0808777
Предмет: Русский язык,
автор: krot0
Предмет: Українська мова,
автор: SHMORO
Предмет: Литература,
автор: sabrinka396
Предмет: Окружающий мир,
автор: msur8