Viết chương trình tìm số M nhỏ nhất sao cho M! có ít nhất N chữ số 0 tận cùng Input: Số nguyên dương N (1 ≤ N ≤ 10^16). Dữ liệu luôn đảm bảo có kết quả. Output: Một số nguyên dương M là kết quả cần tìm.
2 câu trả lời
uses crt;
type int = qword;
var n: int;
function calc(g: int): int;
var res: int;
begin
res:=0;
while g <> 0 do
begin
g:=g div 5;
inc(res, g);
end;
exit(res);
end;
function solve(l, r: int): int;
var mid: int;
begin
if r - l <= 1 then exit(r div 5 * 5);
mid:=(l + r) div 2;
if calc(mid) < n then exit(solve(mid + 1, r));
exit(solve(l, mid));
end;
begin
clrscr;
readln(n);
writeln(solve(0, 5 * n));
end.
Cày trâu ạ 🐃🐃
#include <bits/stdc++.h>
using namespace std;
long long t,n,k,d=0,m,i;
int main()
{
cin>>n;
for (i=1; k<n; i++){
m=i;
k=0;
while (m>0){
m=m/5;
k+=m;
}
if (d==5) d=1; else d++;
}
cout<<i-1;
}
Câu hỏi trong lớp
Xem thêm