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