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

Đề tài: Số Fib

  1. #1
    Ngày gia nhập
    10 2007
    Bài viết
    43

    Mặc định Số Fib

    Code:
    #include <stdio.h>
    #include <conio.h>
    #include <math.h>
    #include <iostream.h>
    #include <stdlib.h>
    
    
    //int f(
    main()
    {
       int n,i,j,k,a[50];
       cout<<"Nhap vao so fib can tim ";
       cin>>n;
       a[0] = 1;
       a[1] = 1;
    
       for(i=2;i<=n;i++)
       {
          a[i] = a[i-1] + a[i-2];
          if(a[i]<0)  break;
          
       }
    
       cout<<a[n];
       getch();
    }
    bài này đã hoàn thiện, tuy nhiên có 1 chỗ lạ và boy muốn hỏi chỗ đó
    for(i=2;i<=n;i++)

    ---> nếu ta cho i<n thôi thì nó sẽ in ra toàn kết quả sai, mà theo boy nghĩ thì i<n thì sẽ in ra kết quả sai lệch 1 đơn vị thôi chứ ko thể sai cả ngàn dơn vị được

  2. #2
    Ngày gia nhập
    01 2008
    Nơi ở
    Rất nhiều sóng gió
    Bài viết
    447

    Trích dẫn Nguyên bản được gửi bởi boy_popping Xem bài viết
    nếu ta cho i<n thôi thì nó sẽ in ra toàn kết quả sai, mà theo boy nghĩ thì i<n thì sẽ in ra kết quả sai lệch 1 đơn vị thôi chứ ko thể sai cả ngàn dơn vị được
    Sao lại không được. Chương trình này tính giá trị hàm số a(i), một hàm tăng rất nhanh. Khi i lớn và bị sai 1 đơn vị thì dĩ nhiên sẽ làm a(i) sai nhiều đơn vị.

  3. #3
    Ngày gia nhập
    10 2007
    Bài viết
    43

    Trích dẫn Nguyên bản được gửi bởi Ada Xem bài viết
    Sao lại không được. Chương trình này tính giá trị hàm số a(i), một hàm tăng rất nhanh. Khi i lớn và bị sai 1 đơn vị thì dĩ nhiên sẽ làm a(i) sai nhiều đơn vị.
    thanks bạn đã trả lời nhưng thực sự chưa mang tính thuyết phục
    boy vẫn chưa hiểu ý bạn nói ji` ^^, ban có thể nói rõ hơn không ?

  4. #4
    Ngày gia nhập
    01 2008
    Nơi ở
    Rất nhiều sóng gió
    Bài viết
    447

    Trích dẫn Nguyên bản được gửi bởi boy_popping Xem bài viết
    thanks bạn đã trả lời nhưng thực sự chưa mang tính thuyết phục
    boy vẫn chưa hiểu ý bạn nói ji` ^^, ban có thể nói rõ hơn không ?
    Điều kiện i<=n là tương đương với i<n+1, tức là sai 1 đơn vị so với i<n.

  5. #5
    Ngày gia nhập
    02 2008
    Nơi ở
    Việt Nam
    Bài viết
    577

    Đây tớ nói cho nghe, đầy tính thuyết phục luôn
    Nếu for(i=2;i<n;i++) đồng nghĩa với bạn không tính a[n] đúng không mà bạn cout<<a[n]; vậy tất nhiên trường hợp này a[n] chưa có giá trị nên sẽ ra một giá trị linh tinh rất lớn.
    Có bằng thì sẽ ra kết quả đúng là chắc rồi.

  6. #6
    Ngày gia nhập
    10 2007
    Bài viết
    43

    Mặc định Số Fib

    Trích dẫn Nguyên bản được gửi bởi QuangHoang Xem bài viết
    Đây tớ nói cho nghe, đầy tính thuyết phục luôn
    Nếu for(i=2;i<n;i++) đồng nghĩa với bạn không tính a[n] đúng không mà bạn cout<<a[n]; vậy tất nhiên trường hợp này a[n] chưa có giá trị nên sẽ ra một giá trị linh tinh rất lớn.
    Có bằng thì sẽ ra kết quả đúng là chắc rồi.

    Hay hay
    hoàn toàn thuyết phục ^^
    thanks ban QuangHoang rất là nhiều

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