Từ 1 tới 7 trên tổng số 7 kết quả

Đề tài: rắc rối với đệ quy ( return) ?? Tìm các số nguyên tố nhỏ hơn n

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

    Mặc định rắc rối với đệ quy ( return) ?? Tìm các số nguyên tố nhỏ hơn n

    mấy hôm nay điên lên với bài tâp áp dụng đệ quy để in các số nguyên tố từ 1 đến n bằng đệ quy !
    Đây là bài em đang test
    PHP Code:
    #include <conio.h>
    #include <iostream.h>
    int snt (int n);

    int snt (int n)
    {
        for (
    int i=1i<=n;i++)
        {
            
    int d=0;
            for (
    int  j=2;j<i;j++)
            if (
    i%j==0d++ ;
            if (
    d==0) [COLOR="Red"]return 1;[/COLOR]

        }
        [
    COLOR="Red"]return 0;[/COLOR]
    }

    void main ()
    {
        
    clrscr ();
        
    int n;
        
    cout <<" nhap n";
        
    cin >>n;
        for (
    int i=2;i<=n;i++)
        if (
    snt(n)==[COLOR="Red"]1[/COLOR]) cout <<i<<" ";
        
    getch ();

    không bàn đến thuật toán !
    mong mọi ngừoi giúp đỡ xem tại sao bài của em lại cho ra kết quả sai [ sửa giúp em bài làm luôn ]
    + 1 câu hỏi hóc búa nữa ( đã tìm hiểu nhiều nhưng vẫn kô tài nào hiểu nối )
    có phải trong code mà em viết trên , [những chữ em tô đỏ] có số 1 và số 0 có phải nó tượng trưng cho ĐÚNG và SAI không ?? , và tại sao có nhiều nhiều bài lại có return không phải là 1 or 0 mà lại là 1 số khác !

    thanks mọi ngừoi đã bỏ thời gian đọc bài em ! ei biết giúp mình với
    thanks all
    Đã được chỉnh sửa lần cuối bởi langman : 25-11-2010 lúc 01:06 PM.

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

    Bạn chú ý hàm nguyên tố của bạn.
    Có 2 vòng lặp lồng, sai ở chỗ đó
    Trong C, coi bằng 0 là sai, ngược lại đúng,
    Tuỳ bài mà có thể return khác nhau
    Mà có thấy đệ quy đâu?

  3. #3
    Ngày gia nhập
    11 2010
    Nơi ở
    Black Hole
    Bài viết
    824

    hàm luôn trả về 0 về giá trị cuối cùng hàm nhân dc sau quá trình đễ quy là 0.
    Hãy đọc mại code và giả lập quá trình hàm thcayj trong đầu bạn sẽ hiểu.

  4. #4
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    3,007

    tớ chả hiểu nổi ý bạn mún gì nữa
    tớ đâu có thấy code nào có đệ quy đâu ?
    tớ thấy snt chắc là bạn đang làm số nguyên tố hả
    tớ làm thử cái này nha
    đệ quy tìm số nguyên tố từ 1 đến n
    PHP Code:
    #include<iostream>
    using namespace std;
    #include <conio.h>

    int nguyento(int n,int i=2)
    {
        if (
    n<4) return n>=2;
        if (
    n%i==0) return 0;
        return 
    i<sqrt(double(n))+1?nguyento(n,i+1):1;
    }
    void nguyentonhohonn(int n)
    {
        
    n>1?nguyentonhohonn(n-1),nguyento(n)?printf("%d  ",n):0:0;
    }

    void main()
    {
        
    nguyentonhohonn(99);
        
    getch();

    ^_,^

    Facebook : https://www.facebook.com/langmaninternet

    Bùi Tấn Quang

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

    thanks mọi người ! mới hiểu ra vài vấn đề nhưng bây giờ chả biết thế nào là đệ quy nữa luôn !

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

    Mặc định rắc rối với đệ quy ( return) ?? Tìm các số nguyên tố nhỏ hơn n

    Trích dẫn Nguyên bản được gửi bởi dtphong1603 Xem bài viết
    thanks mọi người ! mới hiểu ra vài vấn đề nhưng bây giờ chả biết thế nào là đệ quy nữa luôn !
    nói chỉ phải!!!mình cũng mới học đệ quy mà giờ k bít nó là cái j nữa!!!đưa ra 1 bài mới mà kiu làm là bí lun!

  7. #7
    Ngày gia nhập
    02 2012
    Bài viết
    8

    Trích dẫn Nguyên bản được gửi bởi langman Xem bài viết
    tớ chả hiểu nổi ý bạn mún gì nữa
    tớ đâu có thấy code nào có đệ quy đâu ?
    tớ thấy snt chắc là bạn đang làm số nguyên tố hả
    tớ làm thử cái này nha
    đệ quy tìm số nguyên tố từ 1 đến n
    PHP Code:
    #include<iostream>
    using namespace std;
    #include <conio.h>

    int nguyento(int n,int i=2)
    {
        if (
    n<4) return n>=2;
        if (
    n%i==0) return 0;
        return 
    i<sqrt(double(n))+1?nguyento(n,i+1):1;
    }
    void nguyentonhohonn(int n)
    {
        
    n>1?nguyentonhohonn(n-1),nguyento(n)?printf("%d  ",n):0:0;
    }

    void main()
    {
        
    nguyentonhohonn(99);
        
    getch();

    Anh có thể giải thích kĩ từng câu lệnh không em đọc lằng nhằng quá không hiểu được

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

  1. Return 0, return 1.. ?
    Gửi bởi conga2012 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 17-12-2012, 10:59 AM
  2. hàm bắt buộc nhập số, nếu là số thì return 1, còn ký tự thì return 0;
    Gửi bởi khacphuctran 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: 11-03-2011, 04:39 PM
  3. Khi nào cần return 0, return 1 trong int main()
    Gửi bởi jojocolumbus 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: 22-06-2010, 10:23 AM
  4. khi nào return 1, khi nào return 0?
    Gửi bởi fanmaytinh trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 7
    Bài viết cuối: 20-10-2009, 05:32 PM
  5. Điểm khác biệt giữa get và return
    Gửi bởi EnnerIT trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 10
    Bài viết cuối: 17-04-2009, 08: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