Trang 1 trên tổng số 3 123 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 21 kết quả

Đề tài: Làm sao để tính giai thừa n không dùng đệ qui, không vòng lặp, không goto?

  1. #1
    Ngày gia nhập
    04 2009
    Nơi ở
    Gầm cầu
    Bài viết
    2,230

    Mặc định Làm sao để tính giai thừa n không dùng đệ qui, không vòng lặp, không goto?

    làm sao để tính giai thừa n không dùng đệ qui,không vòng lặp,không goto ?
    Đã được chỉnh sửa lần cuối bởi zstar : 12-02-2011 lúc 10:30 PM.

  2. #2
    Ngày gia nhập
    12 2009
    Nơi ở
    Hà Nội
    Bài viết
    107

    làm sao để tính giai thừa n không dùng đệ qui,không vòng lặp,không goto ?--> kiến thức cơ bản
    tính n! mà ko dùng đệ qui, vòng lặp, goto á??? pro nào có cách làm thì showw hàng đi

  3. #3
    Ngày gia nhập
    01 2011
    Nơi ở
    -Mountain-
    Bài viết
    768

    uk!!~ mình cũng ko bik. chỉ zùm mình với. ^^
    mà nếu tính thủ công thì mình tính n!=n.(n-1).....1
    đương nhiên là n phải biết trước để còn tính
    :-D
    Hướng dẫn C++: https://www.youtube.com/watch?v=BwLodoQdoY4&list=PL1c9Uxlo-mplJDRGdONNupgo5OCBTyGGn

  4. #4
    Ngày gia nhập
    10 2009
    Nơi ở
    Close All
    Bài viết
    993

    Hì.Cách tận dụng tính chất của Constructor trong OOP có vẻ tạm chấp nhận đc bác nhỉ

  5. #5
    Ngày gia nhập
    04 2009
    Nơi ở
    Gầm cầu
    Bài viết
    2,230

    Trích dẫn Nguyên bản được gửi bởi tauit_dnmd Xem bài viết
    Hì.Cách tận dụng tính chất của Constructor trong OOP có vẻ tạm chấp nhận đc bác nhỉ
    chấp nhận được chứ. cách duy nhất

  6. #6
    Ngày gia nhập
    12 2009
    Nơi ở
    Hà Nội
    Bài viết
    107

    Mặc định Làm sao để tính giai thừa n không dùng đệ qui, không vòng lặp, không goto?

    trời, dùng constructor và biến static trong class

  7. #7
    Ngày gia nhập
    12 2009
    Nơi ở
    Hà Nội
    Bài viết
    107

    mà dùng constructor thế cũng gần như đệ quy quá. vì cũng biến không gian đầu vào n thành không gian nhỏ hơn để tăng kq

  8. #8
    Ngày gia nhập
    08 2011
    Nơi ở
    Trà Vinh
    Bài viết
    20

    Trích dẫn Nguyên bản được gửi bởi zstar Xem bài viết
    dùng vòng while

    làm sao để tính giai thừa n không dùng đệ qui,không vòng lặp,không goto ?
    Dùng switch() case
    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3. void main()
    4. {    clrscr();
    5.       int n;
    6.       long gt;
    7.       //Kiem tra dieu kien nhap
    8.       do
    9.       {     printf("Nhap n= ");
    10.              scanf("%d",&n);
    11.        }
    12.        while (n<0||n>50);
    13.        switch (n)
    14.        {     case 0:
    15.               case 1: gt=1;
    16.                          break;
    17.               case 2: gt=2;
    18.                          break;
    19.               ..............
    20.               case 50:...........
    21.                           break;
    22.         }
    23.          printf(" %d ! = %ld",n,gt);
    24.          getch();
    25. }
    Còn nếu muốn tính giá trị giai thừa lớn hơn thì sửa điều kiện nhập và thêm nhiều lệnh case thôi àh!!!!!!!!!!!!!!
    Nó là con của thằng nào ? Con của thằng nào ? Nói mau!!!!!!!!!!!!!!!

  9. #9
    Ngày gia nhập
    08 2011
    Nơi ở
    Trà Vinh
    Bài viết
    20

    Trích dẫn Nguyên bản được gửi bởi zstar Xem bài viết
    dùng vòng while

    làm sao để tính giai thừa n không dùng đệ qui,không vòng lặp,không goto ?
    Thì dùng switch() case:
    Rồi ngồi liệt kê ra các giá trị giai thừa từ 1 đến 100 chẳn hạn!!!!!!!!!!!!!!!!!!!!!!!!!!
    Nó là con của thằng nào ? Con của thằng nào ? Nói mau!!!!!!!!!!!!!!!

  10. #10
    Ngày gia nhập
    07 2006
    Nơi ở
    Hanoi, Vietnam
    Bài viết
    2,750

    Mặc định Tính giai thừa không sử dụng lặp, không đệ quy, không goto

    Cách này của Kevin, đảm bảo hết các yếu tố kể trên:
    - Không đệ quy
    - Không vòng lặp
    - Không goto
    - Kiến thức cơ bản

    Về tốc độ chắc chắn nhanh hơn tuốt mấy cách trên.

    C Code:
    1. const long int factorial[] = {
    2.     1,
    3.     1,
    4.     2,
    5.     6,
    6.     24,
    7.     120,
    8.     720,
    9.     5040,
    10.     40320,
    11.     362880,
    12.     3628800,
    13.     39916800,
    14.     479001600,
    15.     6227020800,
    16.     87178291200,
    17.     1307674368000,
    18.     20922789888000,
    19.     355687428096000,
    20.     6402373705728000,
    21.     121645100408832000,
    22.     2432902008176640000
    23. };
    24.  
    25. return factorial[n];

    Bác nào thích toán học, em tặng code sau:
    C Code:
    1. long int factorial(int n)
    2. {
    3.     n++;
    4.     return n^n*exp(-n)*sqrt(2*3.1415926536/n)*(1+1/(12*n)+1/(288*n^2)-139/(51840*n^3)-571/(2488320*n^4));
    5. }
    Email: admin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
    Phone: 0972 89 7667 (Office: 04 6329 2380)
    Yahoo & Skype: dreaminess_world (Vui lòng chỉ rõ mục đích ngay khi liên hệ, cảm ơn!)

    Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó. Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp!

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

  1. Lệnh goto trên C | Giúp mình hiểu về lệnh goto trên C?
    Gửi bởi kenptit trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 5
    Bài viết cuối: 14-10-2013, 10:34 PM
  2. tính tổng dùng vòng lặp for hộ tớ với
    Gửi bởi thanhthanh_ht87 trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 14
    Bài viết cuối: 09-09-2013, 08:51 AM
  3. Không dùng vòng lặp và đệ quy
    Gửi bởi cdphuc trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 50
    Bài viết cuối: 25-08-2010, 02:04 AM
  4. tính giai thừa không dùng đệ quy
    Gửi bởi nhatnha trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 7
    Bài viết cuối: 11-06-2010, 07:24 PM
  5. Chuyển hệ thập phân sang nhị phân chỉ dùng vòng for không dùng mảng
    Gửi bởi zodjac1990 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 24-02-2009, 06:16 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