С++ СИРИУС Факториал Для заданного натурального N найти последнюю ненулевую цифру числа N!.
Входные данные
Задано число число N(0 ≤ N ≤ 1 000 000).
Выходные данные
Выведите одно число — последнюю ненулевую цифру факториала числа N.
Примеры
Ввод
5
Вывод
2
Ввод
8
Вывод
2
239
426
Ответы на вопрос:
#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
Популярно: Информатика
-
Alinatomil6308.01.2022 03:52
-
proadidas9013.03.2021 16:40
-
lis31672105.03.2022 03:58
-
Кейл28.10.2021 05:15
-
fukaczumi22.04.2022 19:05
-
Grooshka14.09.2022 21:53
-
dossovatomiris03025.12.2020 05:49
-
bellason06.08.2022 04:15
-
11cat1330.12.2022 14:07
-
Vika247113.10.2021 00:49