Đến nội dung

Hình ảnh

[Pascal] Bài tập: Tìm K chữ số cuối cùng của M^N

- - - - -

  • Please log in to reply
Chủ đề này có 2 trả lời

#1
phuongtanthanh99

phuongtanthanh99

    Lính mới

  • Thành viên
  • 4 Bài viết

Tìm K chữ số cuối cùng của MN (0< K <=9, 0<= M, N<= 106)    

Nếu có thể, phiền các bạn chia sẻ hướng suy nghĩ và thuật toán của mình trước khi đưa code

(Bài tập 2.8 trang 38 tài liệu chuyên tin học )


Bài viết đã được chỉnh sửa nội dung bởi phuongtanthanh99: 24-12-2014 - 21:00


#2
nghethuat102

nghethuat102

    Trung sĩ

  • Thành viên
  • 147 Bài viết

bai nay ban su dung lien tuc phep mod . cho 1 vong for i tu 1 den n, dung bien a:= a*i; Neu a mod 10=0 then a:=a div 10 ,  neu a mod 100.... (k chu so 0 hoac co the dung mac dinh la mot so nao do de tang do chinh xac cho thuat toan) <>0 then loai bo may chu so hang dau trong so a... ,



#3
Zjkar

Zjkar

    Hạ sĩ

  • Thành viên
  • 82 Bài viết


Tìm K chữ số cuối cùng của MN (0< K <=9, 0<= M, N<= 106)    

Nếu có thể, phiền các bạn chia sẻ hướng suy nghĩ và thuật toán của mình trước khi đưa code

(Bài tập 2.8 trang 38 tài liệu chuyên tin học )

 

Mình không hiểu bác nghetuat102 làm gì nhưng mình có cách làm khác, bạn có thể tham khảo:

* Ý tưởng:

b1: Tính M^N 

b2: Chuyển kq của M^N sang xâu.

b3: Chạy từ k đến số phần tử của xâu và cộng các phần tử trong khoảng đó

=> tìm được kq cuối cùng.

---> để mình viết code cho bạn dễ hiểu nhé:

Code:

program 

uses crt;

var i,n,m,x,k:integer;

s,z:string;

begin

clrscr;

write('Nhap m:');readln(m);

write('Nhap n:');readln(n);

write('Nhap k:'):readln(k);

x:=m;

for i:=1 to n-1 do

x:=x*m;

str(x,s);

z:='';

for i:=k to length(s) do

z:=z+s[i];

writeln(k,' chu so cuoi cung cua ',m,'^',n,' la:',z);

readln

end.

----Ok rồi đó bạn --------

P/s: Đọc rồi ngẵm nghĩ là hiểu.


Bài viết đã được chỉnh sửa nội dung bởi Zjkar: 05-03-2016 - 19:57





0 người đang xem chủ đề

0 thành viên, 0 khách, 0 thành viên ẩn danh