kết quả từ 1 tới 4 trên 4

Chỉ giúp em bài lũy thừa này với các pas pro N!!! mod m

  1. #1
    Ðến Từ
    Tỉnh Khác
    Thành Viên Thứ: 169670
    Giới tính: Nam
    Bài gửi
    8
    Quick reply to this message Trả lời       


  2. #2
    Ðến Từ
    Hà Nội
    Thành Viên Thứ: 146858
    Giới tính: Nam
    Bài gửi
    6.678

    Reply: Chỉ giúp em bài lũy thừa này với các pas pro N!!! mod m

    Cần tạo 1 hàm (function) để tính giai thừa của 1 số nguyên dương. Code đầy đủ sẽ như sau

    Mã:
    Program dothanhydhth_22_03;
    Var m,n,i,j: integer;
    Function giaithua(n:integer): longint;
    begin
      if (n=1) or (n=2) then
        giaithua:=n
      else
        giaithua:=giaithua(n-1)*n;
    end;
    
    
    BEGIN
      writeln('Chuong trinh nhap N,M va tinh N!!! mod m');
      write('Nhap n,m: '); readln(n,m);
      writeln('Ket qua can tinh ',giaithua(giaithua(giaithua(n))) mod m);
      readln;
    END.
    Code này không chạy được vì vượt quá giới hạn Stack mà Pascal cho phép. Ví dụ như 3!!! thì máy tính Casio đã không tính được rồi. Bài toán này chắc chắc sẽ rất ít tính thực tiễn, hoặc bạn có thể dùng ngôn ngữ khác như Java hoặc Delphi.

    Có những cách khác để tính toán với những số rất lớn trong Pascal
    • Dùng kiểu chuỗi: Giới hạn ở 255 chữ số
    • Kiểu mảng: được hàng ngàn chữ số, nhưng bộ nhớ dành cho mảng là 64KB
    • Dùng cấu trúc dữ liệu kiểu mảng động để thao tác với các số lớn tới hàng tỉ chữ số (vì kích thước mảng động phụ thuộc vào RAM thực trên máy tính)
    Hãy nhấn nút Thank nếu thấy bài viết hữu ích
    Bộ sưu tập cực khủng


  3. #3
    Ðến Từ
    Tỉnh Khác
    Thành Viên Thứ: 169670
    Giới tính: Nam
    Bài gửi
    8

    Reply: Chỉ giúp em bài lũy thừa này với các pas pro N!!! mod m

    Nhất thiết phải làm ra và chạy được anh quanltv. Vì đây là 1 đề thi học sinh giỏi. Nó có một số test vì số quá lơn nên tôi không biết cách làm. Anh giúp tôi với

  4. #4
    Ðến Từ
    Cần Thơ
    Thành Viên Thứ: 213248
    Giới tính: Nam
    Bài gửi
    6

    Reply: Chỉ giúp em bài lũy thừa này với các pas pro N!!! mod m

    Tác giả: Đào Anh Pha

    Mã:
    #include <conio.h>
    #include <iostream.h>
    /*Ham tra ve so nguyen tinh n! (Factorial)*/
    long int Fac(int n) {
       if(n==0)
          return 1;
       else
          return n*Fac(n-1);
    }
    /*Chuong trinh chinh*/
    void main(){
       clrscr();
       int n;
       cout<<"Nhap vao gia tri cua n = ";
       cin>>n;
       cout<<n<<"! = "<<Fac(n);
       getch();
    }