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ố 14 kết quả

Đề tài: thuật toán tìm số hoàn hảo với lập trình C

  1. #1
    Ngày gia nhập
    04 2009
    Bài viết
    3

    Mặc định thuật toán tìm số hoàn hảo với lập trình C

    mọi người giúp mình tìm thuật toán tìm số hoàn hảo với

  2. #2
    Ngày gia nhập
    11 2008
    Bài viết
    203

    PHP Code:
    #include <conio.h>
    #include <stdio.h>

    bool SOHOANHAO(int);
    void NHAPXUAT();



    int main()
    {
        
    int n;
        
    NHAPXUAT();
        
    getch();
        return 
    0;
        
    }


    bool SOHOANHAO(int n)
    {
        
    int tong=0;
        if(
    n<1)
            return 
    false;
        else
        {
            for(
    int i=1;i<(n/2)+1;i++)
            {
                if(
    n%i==0)
                    
    tong+=i;
            }
            if(
    tong==n)
                return 
    true;
            else
                return 
    false;
        }
    }
    void NHAPXUAT()
    {
        
    int n;
        
    printf("Nhap vao so n: ");scanf("%d",&n);
        if(
    SOHOANHAO(n))
            
    printf("%d la so hoan hao!",n);
        else
            
    printf("%d KHONG phai so hoan hao!",n);    

    Tôi tin rằng: giải thuật thì có thể tìm trong hàng trăm GB ebook, hoặc Google nhưng code chạy thì chưa chắc! Hãy post code để chứng tỏ giải thuật của bạn là đúng!
    Giải thuật là bản thiết kế của ngôi nhà, code là phần xây dựng. Nếu chỉ xây nhà trên giấy thì ta sống chả khác nào người nguyên thủy.

  3. #3
    Ngày gia nhập
    11 2008
    Bài viết
    116

    bool SOHOANHAO(int)
    Love cho tui hỏi là bool là kiểu hàm gì

  4. #4
    Ngày gia nhập
    03 2009
    Nơi ở
    Ở địa ngục
    Bài viết
    667

    Bool là kiểu hàm logic. Nó chỉ trả về (return) 2 giá trị Đúng (true) hoặc Sai (false). Bạn ạ.

  5. #5
    Ngày gia nhập
    11 2008
    Bài viết
    116

    Vậy sao love lại ko dùng int SOHOANHAO(int). Nó cũng trả về 2 giá trị đúng( return 1) hoặc sai ( return 0). Cho tui hỏi có sự khác biệt nhau ko ?

  6. #6
    Ngày gia nhập
    11 2008
    Bài viết
    203

    Mặc định thuật toán tìm số hoàn hảo với lập trình C

    Không khác biệt nhau là mấy!
    Nếu dùng int KIEMTRASOHOANHAO thì hơi phí, vì mình chỉ cần kiểm tra nó là số hoàn hảo hay không (YES/NO). Trong khi int KTSHH thì kiểu int có thể trả về nhiều giá trị, có thể là 1,2,3....

    Mình không làm thì thôi, làm là sẽ post full code. Nhưng mà cái đề bài bạn nêu ra hơi mập mờ: "Tìm số hoàn hảo", nên mình viết thành hàm kiểm tra số hoàn hảo thôi. Bạn nhập n=28 sẽ được thông báo là số hoàn hảo.
    Tôi tin rằng: giải thuật thì có thể tìm trong hàng trăm GB ebook, hoặc Google nhưng code chạy thì chưa chắc! Hãy post code để chứng tỏ giải thuật của bạn là đúng!
    Giải thuật là bản thiết kế của ngôi nhà, code là phần xây dựng. Nếu chỉ xây nhà trên giấy thì ta sống chả khác nào người nguyên thủy.

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

    Nhưng trong C đâu có kiểu dữ liệu này ?

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

    Uh! Đúng là trong C không có kiểu bool thật, lúc trước thầy có nói mà mình quên mất. Cái này là do học lắm ngôn ngữ lập trình nên bây giờ nó tẩu hỏa thế đấy! Trước học Pascal, sau học C, giờ đang học C++. Dễ nhầm nhất là 2 chú C và C++!!
    Chạy trên DevC++ bạn ạ!

    Video này là bằng chứng:
    PHP Code:
    http://www.mediafire.com/?j0xojpjbosm
    Mirror:
    http://rapidshare.com/files/221645820/Sohoanhao.rar 


    PHP Code:
    #include <conio.h>
    #include <stdio.h>

    int SOHOANHAO(int);
    void NHAPXUAT();



    int main()
    {
        
    int n;
        
    NHAPXUAT();
        
    getch();
        return 
    0;
        
    }


    int SOHOANHAO(int n)
    {
        
    int tong=0;
        if(
    n<1)
            return 
    0;
        else
        {
            for(
    int i=1;i<(n/2)+1;i++)
            {
                if(
    n%i==0)
                    
    tong+=i;
            }
            if(
    tong==n)
                return 
    1;
            else
                return 
    0;
        }
    }
    void NHAPXUAT()
    {
        
    int n;
        
    printf("Nhap vao so n: ");scanf("%d",&n);
        if(
    SOHOANHAO(n))
            
    printf("%d la so hoan hao!",n);
        else
            
    printf("%d KHONG phai so hoan hao!",n);    

    Đã edited!
    Đã được chỉnh sửa lần cuối bởi Loveanygirls : 15-04-2009 lúc 09:14 PM.
    Tôi tin rằng: giải thuật thì có thể tìm trong hàng trăm GB ebook, hoặc Google nhưng code chạy thì chưa chắc! Hãy post code để chứng tỏ giải thuật của bạn là đúng!
    Giải thuật là bản thiết kế của ngôi nhà, code là phần xây dựng. Nếu chỉ xây nhà trên giấy thì ta sống chả khác nào người nguyên thủy.

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

    Vậy cứ khai báo int sohoanhao(int x) và dùng kĩ thuật cờ hiệu cho nó lành

  10. #10
    Ngày gia nhập
    04 2009
    Bài viết
    68

    Ủa mình vẫn đc dạy biến bool trong C mà nhỉ ????
    Số hoàn hảo là số có tổng bằng tích của tất cả các ước của nó
    Vd: 6 = 3 + 2 +1; 28 = 1 + 2 + 4 + 7 + 14
    Bài này thì cậu viết 1 hàm tìm tất cả các ước của n rùi + nó lại. Nếu = n thì là số hoàn hảo

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

  1. Dịch thuật, công ty dịch thuật, dịch vụ dịch thuật chuyên nghiệp
    Gửi bởi vecvn trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 4
    Bài viết cuối: 18-11-2012, 10:44 PM
  2. Dịch vụ kế toán: Báo cáo thuế, dịch vụ tư vấn thuế, báo cáo thuế tncn vnnp
    Gửi bởi ecomvnnp01 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: 16-02-2012, 11:07 AM
  3. Bài tập C++ Viết chương trình nhập số lượng hàng hóa, giá cả, thuế, xuất ra tổng giá, thuế, tổng cộng
    Gửi bởi seit trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 04-03-2011, 09:04 AM
  4. Hướng dẫn kê khai thuế thu nhập cá nhân, thuế doanh nghiệp 0903034381
    Gửi bởi thngxanhcty 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: 19-05-2010, 02:33 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