Tính tổng S(n) = 1 + 1/3 + 1/5 + 1/(2n+1)

Yêu cầu:
– Nhập vào số nguyên dương n
– Tính tổng S(n) = 1 + 1/3 + 1/5 + 1/(2n+1)

Giải thuật:
– Dùng vòng lặp for, do while để duyệt biến i từ 1 tới n
– Tính tổng: s = s + 1/(2*i + 1)

Code

/************************************************************
* Author: VNCODING
* History
* 2016/12/12        first create    VNCODING
*************************************************************/

#include <stdio.h>
#include <conio.h>

int main()
{
	printf("S(n) = 1 + 1/3 + 1/5 + 1/7 + ... + 1/(2n+1)\n");
	int i, n;
    float s = 1.0;
	do
	{
		printf("n = ");
		scanf("%d", &n);
	}while(n < 0);
	
	for(i = 1; i <= n; i++)
	{
        s += 1.0/(2*i + 1);
	}
	printf("\nS(%d) = %f", n, s);
	getch();
	return 0;
}

Kết quả:

Tính tổng  S(n) = 1 + 1/3 + 1/5 + 1/(2n+1)
Tính tổng S(n) = 1 + 1/3 + 1/5 + 1/(2n+1)

9 Comments on Tính tổng S(n) = 1 + 1/3 + 1/5 + 1/(2n+1)

    • Có 2 điều anh muốn em nhớ:
      – phải khởi tạo giá trị ban đầu cho biến khi sử dụng toán tử +=, -=,…
      Ở đây: s += 1/(2*n + 1) < => s = s + 1/(2*n + 1). Nếu bạn không khởi tạo cho biến s, khi chạy chương trình sẽ báo exception do biến ‘s’ chưa có giá trị.
      – Tại sao lại gán “s = 1”, là do mình duyệt i từ 1 đến n. Bạn cũng có thể gán “s = 0” và duyệt i từ 0 đến n.

  1. hình như dạng này lớp 8 bọn em chưa học đến ạ? bọn em chỉ mới học đến while thôi nên anh có thể sử dụng for … do hoặc while giúp em được không ạ?

  2. Mọi người sửa giúp em bài sau với ạ.
    Bài tính tổng S(n)=1/3+1+5+…+1/(2n+1).
    Em được yêu cầu code theo kiểu sử dụng hàm con, sao em chạy toàn cho kết quả sai. Nếu em code mà không dụng hàm con thì kết quả lại đúng.

    #include

    int nhap()
    {
    int x;
    do
    {
    cin>>x;
    }while(x < 0);
    return x;
    }
    int tinh()
    {
    int i, n;
    float s = 0;
    for(i = 1; i <= n; i++)
    {
    s += 1.0/(2*i + 1);
    }
    return s;
    }
    int main()
    {
    int n;
    cout<<"S(n) = 1/3 + 1/5 + 1/7 + … + 1/(2n+1)\n";
    cout<<"Nhap so nguyen n: ";
    n=nhap();
    cout<<"Ket qua la: S = "<<tinh()<<endl;
    return 0;
    }

  3. Ad cho em hỏi với ạ Khi em làm bài này khởi tạo biến s=1 và ở câu lệnh for thì
    s+=1/(2*i+1) khi chạy kết quả chỉ ra 1. AD giải thích giúp em với ạ
    Thanks Ad

Leave a Reply to viet Cancel reply