- Đề bài: cho t số nguyên dương n ( 1 <= n <= 1 000 000 000). Tính số chữ số 0 của n! (n giai thừa).
- Ví dụ:
INPUT:
Mã:
6
3
60
100
1024
23456
8735373
OUTPUT:
Mã:
0
14
24
253
5861
2183837
Đây là code của mình.
Mã:
#include <iostream>
using namespace std;
int main()
{
int t, n, count;
cin >> t;
for(int i = 0; i < t; i++)
{
count = 0;
cin >> n;
while(n >= 1)
{
n /= 5;
count += n;
}
cout << count << endl;
}
}
Vậy muốn hỏi mọi người xem có cách nào cải thiện tốc độ không? Mình làm test trên trang SPOJ thì tốc độ 0.14 với C++ 4.3.2 trong khi có nhiều thánh 0.00...
http://www.spoj.com/problems/FCTRL/
- Ví dụ:
INPUT:
Mã:
6
3
60
100
1024
23456
8735373
OUTPUT:
Mã:
0
14
24
253
5861
2183837
Đây là code của mình.
Mã:
#include <iostream>
using namespace std;
int main()
{
int t, n, count;
cin >> t;
for(int i = 0; i < t; i++)
{
count = 0;
cin >> n;
while(n >= 1)
{
n /= 5;
count += n;
}
cout << count << endl;
}
}
Vậy muốn hỏi mọi người xem có cách nào cải thiện tốc độ không? Mình làm test trên trang SPOJ thì tốc độ 0.14 với C++ 4.3.2 trong khi có nhiều thánh 0.00...
http://www.spoj.com/problems/FCTRL/