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

Đề tài: Bài tập C | Bài tính tổng có lỗi gì?

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

    Mặc định Bài tập C | Bài tính tổng có lỗi gì?

    Với n>0, tính tổng

    Công thức toán học Latex

    M chỉ viết được như sau, mà khi chay chương trình thì làm lổi chương trình.
    Pro chỉ giúp.
    Thanks

    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. #include<math.h>
    4. void main()
    5. {
    6.     int n,gt;
    7.     float s;
    8.     printf("nhap vao n:");
    9.     scanf("%d",&n);
    10.     for(int i=1;i<=n;i++)  /*cái này m tinh giai thừa*/
    11.         gt*=i;
    12.     for(int j=1;j<=gt;j++)  
    13.         s=pow(gt*s,1./(n+1));
    14.     printf("tong la %f",s);
    15. }
    Sống trên đời cần có một tấm lòng để gió cuốn đi.

    Email: ddtap.khtn@gmail.com

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

    Bài toán này bạn nên dùng đệ quy, nó sẽ dễ hơn nhiều.

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

    Trích dẫn Nguyên bản được gửi bởi trubavuong Xem bài viết
    Bài toán này bạn nên dùng đệ quy, nó sẽ dễ hơn nhiều.
    Nhưng m chua hoc cái đó, chỉ mới học tới vòng lặp, va mẫu câu điều kiện.
    trubavuong biet thì giúp với.
    Sống trên đời cần có một tấm lòng để gió cuốn đi.

    Email: ddtap.khtn@gmail.com

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

    Được rồi, code đây.

    C Code:
    1. #include <conio.h>
    2. #include <stdio.h>
    3. #include <math.h>
    4.  
    5. unsigned long gt(int n)
    6. {
    7.     unsigned long kq=1;
    8.     for(int i=1;i<=n;i++)
    9.         kq*=i;
    10.     return kq;
    11. }
    12. main()
    13. {
    14.     int n;
    15.     double tong=1.;
    16.     printf("\nNhap N= ");
    17.     scanf("%d",&n);
    18.     for(int i=2;i<=n+1;i++)
    19.     {
    20.         tong+=gt(i);
    21.         tong=exp(1./i*log(tong));
    22.     }
    23.     printf("\nTong = %lf",tong);
    24.     getch();
    25. }

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

    Trích dẫn Nguyên bản được gửi bởi fanmaytinh Xem bài viết
    Với n>0, tính tổng

    Công thức toán học Latex

    M chỉ viết được như sau, mà khi chay chương trình thì làm lổi chương trình.
    Pro chỉ giúp.
    Thanks

    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. #include<math.h>
    4. void main()
    5. {
    6.     int n,gt;
    7.     float s;
    8.     printf("nhap vao n:");
    9.     scanf("%d",&n);
    10.     for(int i=1;i<=n;i++)  /*cái này m tinh giai thừa*/
    11.         gt*=i;
    12.     for(int j=1;j<=gt;j++)  
    13.         s=pow(gt*s,1./(n+1));
    14.     printf("tong la %f",s);
    15. }

    Vấn đề là thuật toán sai thôi:
    - Lúc đầu bạn chỉ tính gt = n!, để làm gì, khi mà biểu thức bạn cần tính có chứa 1!, 2!, 3!, ... (n-1)!, n!
    - Vòng lặp thứ 2 cũng sai luôn, biểu thức này có (n + 1) dấu căn thôi, biểu thức của bạn tính có đến n! dấu căn lận.

    Đó là 1 số điểm nhìn vào đã thấy sai. Nếu gọi biểu thức cần tính là f(n), thì ta có
    f(1) = ?
    f(n) = căn n + 1 của (n! + f(n-1))
    Từ đó sửa lại đoạn tính toán của bạn cho đúng là dc

  6. #6
    Ngày gia nhập
    01 2009
    Bài viết
    165

    Mặc định Bài tập C | Bài tính tổng có lỗi gì?

    cái khó nhất của đệ quy chính là tìm hệ thức truy hồi,nhưng ko nên dùng đệ quy trong trường hợp này ,bạn cứ tìm hệ thức truy hồi rồi sau đó khử đệ quy rồi viết chương trình.Với lại cả 2 code của 2 bạn chẳng có cía nào là đệ quy cả.
    Đã được chỉnh sửa lần cuối bởi kimduquan : 05-04-2009 lúc 11:03 AM.

  7. #7
    Ngày gia nhập
    02 2009
    Nơi ở
    105 Lô P c/c ngô gia tự P.02 Q.10 TP.hcm
    Bài viết
    37

    code nè
    Code:
    #include<stdio.h>
    #include<math.h>
    void main()
    {
        int n,gt=1;
        double s=0;
        printf("nhap vao n:");
        scanf("%d",&n);
    		for(int i=1;i<=n;i++)
    		{
    			gt*=i;
    			s=pow(gt+s,1.0/(i+1));
    		}
        printf("tong la %.2f",s);
    }

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