Yahoo Hỏi & Đáp sẽ ngừng hoạt động vào ngày 4 tháng 5 năm 2021 (Giờ Miền Đông nước Mỹ) và từ nay, trang web Yahoo Hỏi & Đáp sẽ chỉ ở chế độ đọc. Các thuộc tính hoặc dịch vụ khác của Yahoo hay tài khoản Yahoo của bạn sẽ không có gì thay đổi. Bạn có thể tìm thêm thông tin về việc Yahoo Hỏi & Đáp ngừng hoạt động cũng như cách tải về dữ liệu của bạn trên trang trợ giúp này.

Nhập x,n. Tính 4 chữ số tận cùng của x^n ????????? Ai pro cho tôi xin code pascal bài trên bằng pp đệ quy ( thuật toán chia để trị) .?

6 Câu trả lời

Xếp hạng
  • 2 năm trước

    Propram VD;

    Uses crt;

    Var a : real;

    x, b, i : integer;

    n : Byte;

    Begin

    Clrscr;

    Write(`Nhap (x;n) = ´); Read(x;n);

    Writeln;

    a:=1;

    If n>1 then For i:=1 to n do a:=a*x;

    If a<10000 then write(`4 chu so cuoi la ´,a)

    Else

    begin

    b:=a - 10000*(Trunc(a/10000));

    Write(`4 chu so cuoi la ´,b);

    end;

    Readln

    End.

    Hàm Trunc(x) là lấy phần nguyên của số thực x

    Vd: Trunc(3,45)

    Kết quả = 3

    Lấy a là kq của biểu thức x^n chia cho 10000 để dịch chuyển dấu phẩy thập phân sang trái 4 chữ số rồi lấy phần nguyên nhân cho 10000 để hoàn lại, sau đó lấy số ban đầu trừ lại là ra 4 chữ số cuối là b.

  • Ẩn danh
    3 năm trước

    b

  • 2 năm trước

    4 chữ số tận cùng nên chỉ cần lấy số <10000.

    Cách giải:

     

    c = 10000

    y = x mod c

    i=0

    r = 1

    while ( i < n) 

        r = r * y

        r = r mod c

    end_while

    print( r)

    cách giải này sẽ không bị tràn số khi tính x^n

  • Ẩn danh
    3 năm trước

    k

  • Ẩn danh
    3 năm trước

    c

  • 3 năm trước

    bổ sung là x<=1000, n<=10^12 :V

Bạn vẫn có câu hỏi? Hãy hỏi ngay để nhận câu trả lời.