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

Đề tài: Cho 1 dãy số. viết hàm đệ quy tính tổng dãy số đó

  1. #1
    Ngày gia nhập
    01 2011
    Bài viết
    4

    Angry Cho 1 dãy số. viết hàm đệ quy tính tổng dãy số đó

    Cho 1 số nguyên dương n. Hãy viết hàm đệ quy tính tổng sau:
    S = 1 + 3 + 5 + ... + 2n - 1

  2. #2
    Ngày gia nhập
    04 2011
    Nơi ở
    Hà Nội
    Bài viết
    253

    Theo mình nên dùng for. Nếu dùng đệ quy thì mình code thế này:

    C++ Code:
    1. int sum(int n)
    2. {
    3.     return (n==1) ? 1 : sum(--n) + 2 * n -1;
    4. }
    Đã được chỉnh sửa lần cuối bởi greigaz : 27-10-2011 lúc 10:28 PM.

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

    Thử xem cái này có được không ?
    C++ Code:
    1. int sum(int n) {
    2.     return (n==1) ? 1 : 2*n-1+sum(n-1);
    3. }

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

    Mặc định Có thể ăn gian :))

    Dùng công thức cấp số cộng tính ra, tổng dãy này = n*n.

  5. #5
    Ngày gia nhập
    09 2011
    Bài viết
    4

    Code:
    #include <conio.h>
    #include <stdio.h>
    int tong(int n)
    {
    if(n==1)
    return 1;
    else
    return (2*n-1)+(2*n-3);
    }
    int main()
    {
    	int a;
    	printf("\n nhap so n: ");
    	scanf("%d",&a);
    	printf("ket qua: %d",tong(a)+1);
    	getch();
    	return(0);
    }
    mình dùng đệ quy cũng k tốt lắm code của bạn đây.có j sửa hộ mình

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

    Mặc định Cho 1 dãy số. viết hàm đệ quy tính tổng dãy số đó

    Code:
    int deQuy(in n)
    {
      int s;
    if (n==1)
    return 1;
    else
    s=n+deQuy(n-2);
    return s;
    }
    mình gọi hàm đệ quy bằng cách deQuy(2*n-1)
    có gì sai mong mọi người sửa giúp do mình chưa code thử ^^

  7. #7
    Ngày gia nhập
    05 2010
    Bài viết
    10

    bạn thử xem:
    int dequy(in n)
    {
    int s;
    if (n==1)
    return 1;
    return (2*n+1)+dequy(n-1);
    }

  8. #8
    Ngày gia nhập
    10 2011
    Bài viết
    0

    Trích dẫn Nguyên bản được gửi bởi nhutlv01 Xem bài viết
    bạn thử xem:
    int dequy(in n)
    {
    int s;
    if (n==1)
    return 1;
    return (2*n+1)+dequy(n-1);
    }
    bạn làm sai rồi! với dequy(n-1)
    mình cho n=2 thì chương trình sẽ ra kết quả là 6 trong khi kết quả đúng là 9
    do khi n=2 nghĩa là dequy(n-1) sẽ là dequy(1) =1 (return 1) nhưng khi n=1 thì 2*1+1=3 và 3#1
    bạn nên sửa lại lệnh if là if (n==0) return 1;

  9. #9
    Ngày gia nhập
    11 2010
    Nơi ở
    hell
    Bài viết
    165

    Trích dẫn Nguyên bản được gửi bởi lamtrongnhan Xem bài viết
    bạn làm sai rồi! với dequy(n-1)
    mình cho n=2 thì chương trình sẽ ra kết quả là 6 trong khi kết quả đúng là 9
    do khi n=2 nghĩa là dequy(n-1) sẽ là dequy(1) =1 (return 1) nhưng khi n=1 thì 2*1+1=3 và 3#1
    bạn nên sửa lại lệnh if là if (n==0) return 1;

    bài trên đó thì sai rõ ràng ở công thức đệ quy rồi còn j nữa.
    HT117-5277

  10. #10
    Ngày gia nhập
    06 2011
    Bài viết
    0

    Mình cũng đang mắc vấn đề y như này, mọi người xem dùm nhé

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

  1. Lập trình C hai cách viết trong bài viết này có gì khác không, nếu khác mọi người giải thích giúp với
    Gửi bởi letung94 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 5
    Bài viết cuối: 02-01-2013, 07:29 AM
  2. muốn viết code cho 1 button nằm trong girdview thì viết ở đâu
    Gửi bởi thuan trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 2
    Bài viết cuối: 14-09-2011, 01:08 PM
  3. Viết Giao Diện Phần Mềm bằng Flash, Core viết = C
    Gửi bởi trần trân trong diễn đàn Thắc mắc lập trình C/C++ trên Linux
    Trả lời: 5
    Bài viết cuối: 31-05-2011, 06:45 AM
  4. Algorithm Viết code thời khóa biểu viết trên Window Form C# như thế nào?
    Gửi bởi hocphp_1998 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 10
    Bài viết cuối: 12-04-2011, 11:10 PM
  5. [visual basic]Viết lệnh trong sự kiện timer là viết ở đâu?
    Gửi bởi thuan trong diễn đàn Thắc mắc chung
    Trả lời: 2
    Bài viết cuối: 21-09-2010, 12:53 AM

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