Diễn đàn tin học Nguyễn Văn Linh

The second house for every one
 
IndexTrợ giúpTìm kiếmThành viênĐăng kýĐăng Nhập

Share | 
 

 Số chữ số 0 tận cùng của n!

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
Tác giảThông điệp
littlelee
Admin
Admin


Tổng số bài gửi : 415
Join date : 20/12/2009
Age : 21
Đến từ : Nghĩa địa

Bài gửiTiêu đề: Số chữ số 0 tận cùng của n!   Sun 28 Mar 2010, 09:47

Hãy viết chương trình đếm số chữ số 0 tận cùng của n! (n<=10^20)

Dữ liệu vào từ file gt.inp gồm nhiều dòng, mỗi dòng là một số nguyên dương n

Dữ liệu ra file gt.out gồm nhiều dòng, mỗi dognf là một số chỉ số số 0 tính được của dữ liệu tương ứng trong file gt.inp

Ví dụ:

gt.inp
5
10
15

gt.out
1
2
3
Về Đầu Trang Go down
hoangtin14
Mèo con


Tổng số bài gửi : 96
Join date : 08/02/2010
Age : 21
Đến từ : Bình Định

Bài gửiTiêu đề: Re: Số chữ số 0 tận cùng của n!   Sun 28 Mar 2010, 19:39

lit cho bài giải bài này đi. đang cần gấp !
Về Đầu Trang Go down
littlelee
Admin
Admin


Tổng số bài gửi : 415
Join date : 20/12/2009
Age : 21
Đến từ : Nghĩa địa

Bài gửiTiêu đề: Re: Số chữ số 0 tận cùng của n!   Mon 29 Mar 2010, 16:03

hoangtin14 đã viết:
lit cho bài giải bài này đi. đang cần gấp !

Ủa thế hả. Thế sao ko đăng lên đây, tớ góp ý cho. Nhưng mà thôi, bạn bảo cần gấp thì mình sẽ giải luôn, không chờ một tuần giống mấy bài kia nữa.

Phân tích: ta có số a0 sẽ bằng a*10=a*2*5 . Nhìn vào kết quả trên, ta sẽ kết luận được rằng, kết quả cần tìm sẽ phụ thuộc vào số lương thừa số 5 trong dãy các tích. Vì vậy, mình sẽ đi tính số thừa số 5 có trong dãy tích. Số thừa số 5 đó chính là kết quả, tức là số số 0 cần tìm.

Bạn tự đánh code nhé, mình đang bận tí, tối nếu rảnh mình sẽ đánh.
Về Đầu Trang Go down
littlelee
Admin
Admin


Tổng số bài gửi : 415
Join date : 20/12/2009
Age : 21
Đến từ : Nghĩa địa

Bài gửiTiêu đề: Re: Số chữ số 0 tận cùng của n!   Thu 01 Apr 2010, 18:32

Sorry nha, mình đến hôm nay mới rảnh. Bài của bạn đây, hi vọng là còn kịp.

Code:
program giai_thua;
uses crt;
var n,i,h:longint; l,k:integer;

begin
 clrscr;
 write('nhap n: ');readln(n);
 k:=n div 5;
 i:=5; l:=0;
 while i<=n do begin i:=i*5;inc(l); end;
 i:=i div 5;
 while i>1 do
  begin
  h:=n div i;
  k:=k+(h-(h div 5))*(l-1);
  i:=i div 5; dec(l);
  end;
 write('so so 0 tan cung cua n! la: ',k);
readln;
end.
Về Đầu Trang Go down
hoangtin14
Mèo con


Tổng số bài gửi : 96
Join date : 08/02/2010
Age : 21
Đến từ : Bình Định

Bài gửiTiêu đề: Re: Số chữ số 0 tận cùng của n!   Thu 01 Apr 2010, 20:25

vẫn còn kịp :). Thanks.
Về Đầu Trang Go down
administrators
Gà nhỏ


Tổng số bài gửi : 29
Join date : 15/03/2010

Bài gửiTiêu đề: Re: Số chữ số 0 tận cùng của n!   Tue 06 Apr 2010, 16:06

K:=0;
While n>=5 do
Begin
k:= k+ n div 5;
n:= n div 5;
End;
các bạn có thể xem bài phân tích tại đây Số số 0 tận cùng của n! (n<=10^19)

Lâu quá không lên rồi. Thấy các bạn vẫn sôi nổi như xưa!
Về Đầu Trang Go down
vankhoa1260
Gà con


Tổng số bài gửi : 19
Join date : 09/02/2010
Age : 21
Đến từ : Thiên Đường

Bài gửiTiêu đề: Re: Số chữ số 0 tận cùng của n!   Wed 07 Apr 2010, 18:33

administrators đã viết:
K:=0;
While n>=5 do
Begin
k:= k+ n div 5;
n:= n div 5;
End;
các bạn có thể xem bài phân tích tại đây Số số 0 tận cùng của n! (n<=10^19)

Lâu quá không lên rồi. Thấy các bạn vẫn sôi nổi như xưa!

Chả hiểu gì cả.
Về Đầu Trang Go down
hoangtin14
Mèo con


Tổng số bài gửi : 96
Join date : 08/02/2010
Age : 21
Đến từ : Bình Định

Bài gửiTiêu đề: Re: Số chữ số 0 tận cùng của n!   Sat 10 Apr 2010, 16:58

chương trình trên cũng đơn giản mà. có gì ko hỉu?
Về Đầu Trang Go down
Hovanthong
Admin
Admin


Tổng số bài gửi : 101
Join date : 25/07/2010
Age : 22
Đến từ : Hưng nguyên-Nghệ An

Bài gửiTiêu đề: Re: Số chữ số 0 tận cùng của n!   Mon 26 Jul 2010, 23:01

Code:

Var        n,s:longint;
Procedure  input;
BEGIN
          readln(n);
END;
Procedure  xuli;
Var        i,j,a,b:integer;
BEGIN
          s:=1;
          while n>=4 do
Begin
          j:=n mod 5;
          n:=n div 5;
          a:=n mod 2;
          b:=n mod 4;
          if j<>0 then
          for i:=1 to j do s:=(s*i) mod 10;
          if a=1 then s:=(s*4) mod 10;
          for i:=1 to b do
          if odd(s div 2) then s:=(s+10) div 2
          else s:=s div 2;
End;
          for i:=1 to n do s:=(s*i) mod 10;
END;
Procedure  output;
BEGIN
          writeln(s);
          readln
END;
BEGIN
          input;
          xuli;
          output;
END.
Về Đầu Trang Go down
http://thongtra.forum-viet.com
Sponsored content




Bài gửiTiêu đề: Re: Số chữ số 0 tận cùng của n!   Today at 18:53

Về Đầu Trang Go down
 
Số chữ số 0 tận cùng của n!
Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang 
Trang 1 trong tổng số 1 trang

Permissions in this forum:Bạn không có quyền trả lời bài viết
Diễn đàn tin học Nguyễn Văn Linh :: Góc tin học :: Lớp chuyên tin-
Chuyển đến