Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 20 kết quả

Đề tài: Tính giai thừa trong C sử dụng hàm như thế nào?

  1. #1
    Ngày gia nhập
    12 2010
    Bài viết
    2

    Mặc định Tính giai thừa trong C sử dụng hàm như thế nào?

    Em mới học C đến Hàm nên không biết giải bài toán tính giai thừa. Mong các anh chỉ giáo giúp. Bài giai thừa trong C giải cách nào?

  2. #2
    Ngày gia nhập
    03 2009
    Nơi ở
    %appdata%\Temp
    Bài viết
    817

    Đáp án:
    PHP Code:
    1. Xin bạn vui lòng tìm kiếm trước khi đặt câu hỏi
    .::[The best way to predict the future is to invent it]::.
    __________________________________________________ _ - Alan Kay -

  3. #3
    Ngày gia nhập
    12 2010
    Nơi ở
    Thiếu Thất
    Bài viết
    143

    what? học đến hàm rồi mà chưa biết giải bài toán tính giai thừa? chỉ cần học đến for là ok mà bạn?
    C Code:
    1.  
    2. #include <stdio.h>
    3. #include <conio.h>
    4.  
    5. int main()
    6. {
    7.       int n,i;
    8.       long int gt=1;
    9.      
    10.       printf("\n ban can tinh bao nhieu giai thua? ");
    11.       scanf("%d",&n);
    12.       for (i=2;i<=n;i++)
    13.            gt=gt*i;
    14.       printf("\n %d giai thua bang: %ld",n,gt);
    15.       getch();
    16.       return 0;
    17. }

  4. #4
    Ngày gia nhập
    09 2010
    Nơi ở
    Hà Nội
    Bài viết
    382

    có cần hàm không nhỉ?
    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3.  
    4. int main ()
    5. {
    6.     int n = 0;
    7.     int i = 0;
    8.     long N = 1;
    9.     printf("\n Nhap n: ");
    10.     scanf("%d", &n);
    11.     for( i = 1; i <= n; i++)
    12.     {
    13.         N *= i;
    14.     }
    15.     printf("\n N! = %ld", N);
    16.     getch();
    17.     return 0;
    18. }

    skype: hvphu2010
    Yahoo: hvphu2010
    Sdt: 0129 609 4567

  5. #5
    Ngày gia nhập
    08 2008
    Nơi ở
    HCM
    Bài viết
    14

    Bạn nên viết thành hàm vì bây giờ bạn đã học đến phần hàm rồi, mọi chương trình bạn cần chuyển hết sang hàm đi, như vậy sẽ dễ nhớ và dễ hiểu hơn đó.
    Code:
    long giaithua (int n)
    {
        long giaithua = 1;
        printf("\n Nhap n: ");
        scanf("%d", &n);
        for( i = 1; i <= n; i++)
        {
            giaithua=giaithua*i;
        }
        printf("\n Giai thua của %d là %ld", giaithua);
           
    }

  6. #6
    Ngày gia nhập
    07 2010
    Bài viết
    99

    Mặc định Tính giai thừa trong C sử dụng hàm như thế nào?

    Đệ quy

    C Code:
    1. long giaithua(int n)
    2. {
    3.     if (n<=1) return 1;
    4.     else return n*giaithua(n-1);
    5. }

    Không đệ quy

    C Code:
    1. long giaithua(int n)
    2. {
    3.     long result=1;
    4.     for (int i=2;i<=n;i++) result*=i;
    5.     return result;
    6. }

  7. #7
    Ngày gia nhập
    12 2010
    Nơi ở
    Mây
    Bài viết
    268

    Trích dẫn Nguyên bản được gửi bởi Hoang Anh Xem bài viết
    Bạn nên viết thành hàm vì bây giờ bạn đã học đến phần hàm rồi, mọi chương trình bạn cần chuyển hết sang hàm đi, như vậy sẽ dễ nhớ và dễ hiểu hơn đó.
    Code:
    long giaithua (int n)
    {
        long giaithua = 1;
        printf("\n Nhap n: ");
        scanf("%d", &n);
        for( i = 1; i <= n; i++)
        {
            giaithua=giaithua*i;
        }
        printf("\n Giai thua của %d là %ld", giaithua);
           
    }
    - Bạn viết như thế này thì khác gì viết luôn trong hàm main()
    Trích dẫn Nguyên bản được gửi bởi nhquynam Xem bài viết
    Đệ quy
    ....
    Không đệ quy

    C Code:
    1. long giaithua(int n)
    2. {
    3.     long result=1;
    4.     for (int i=2;i<=n;i++) result*=i;
    5.     return result;
    6. }
    - Nếu n == 0 thì result ==????
    - Lêu lêu

  8. #8
    Ngày gia nhập
    11 2010
    Bài viết
    19

    Trích dẫn Nguyên bản được gửi bởi nhquynam Xem bài viết
    Đệ quy

    C Code:
    1. long giaithua(int n)
    2. {
    3.     if (n<=1) return 1;
    4.     else return n*giaithua(n-1);
    5. }

    Không đệ quy

    C Code:
    1. long giaithua(int n)
    2. {
    3.     long result=1;
    4.     for (int i=2;i<=n;i++) result*=i;
    5.     return result;
    6. }
    Cho e hỏi đệ quy là j và ko đệ quy là j đc ko???

  9. #9
    Ngày gia nhập
    11 2010
    Bài viết
    19

    E mới học C nên có lỗi j thì mong mọi người góp ý giúp đỡ để hoàn thiện thêm ^^
    PHP Code:
    int main ()
    {
        
    printf("Nhap n: ");
        
    scanf("%d",&n);
        
        
    int gt 1;
        for ( 
    int i=1i<=ni++ )
               
    gt gt i;
        
    printf("Ket qua %d! = %d",n,gt);
        return 
    ;


  10. #10
    Ngày gia nhập
    12 2009
    Nơi ở
    Quảng Bình -> Đà Nẵng
    Bài viết
    4

    C Code:
    1. long giaithua(int n)
    2. {
    3.     long result=1;
    4.     for (int i=2;i<=n;i++) result*=i;
    5.     return result;
    6. }
    Trích dẫn Nguyên bản được gửi bởi ncptbl Xem bài viết
    - Nếu n == 0 thì result ==????
    Khởi tạo result = 1 nên tất nhiên khi n = 0 thì result = 1 rồi.

Các đề tài tương tự

  1. Chung cư Đại Thanh giá rẻ ở ngay giá gốc sốc 10 triệu
    Gửi bởi haonhien68 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 1
    Bài viết cuối: 05-12-2013, 06:42 PM
  2. Atlazbooks giảm giá 25% nhiều đầu sách nhân ngày 8-3
    Gửi bởi pipilazy trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 25-02-2012, 11:35 PM
  3. Giai thừa, Tính toán giai thừa trong lập trình C
    Gửi bởi congthao trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 11
    Bài viết cuối: 14-07-2009, 01:12 PM
  4. Giải thích tính giai thừa trong C như thế nào?
    Gửi bởi thanhlinhhue trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 7
    Bài viết cuối: 02-08-2008, 10:18 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn