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

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

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

Code

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

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

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

Kết quả:

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

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

  1. Admin cho e hỏi chút ạ: Tại sao khi sử dụng kiểu dữ liệu float thì tử số luôn phải khai báo rõ vd:1.0 còn mẫu số thì không ạ?

  2. ad cho em hỏi tại sao một số bài tính tổng có những bài s=0 và i=0 nhưng cũng có những bài s=1 và i=0 or s=0, i=1 e chưa hiểu rõ chỗ này lắm ạ

    • Hi Bắc,
      >ad cho em hỏi tại sao một số bài tính tổng có những bài s=0 và i=0 nhưng cũng có >những bài s=1 và i=0 or s=0, i=1 e chưa hiểu rõ chỗ này lắm ạ

      Nó phụ thuộc vào công thức tính tổng tổng quát bạn nhé.
      Ví dụ:
      1) S(n) = 1/2 + 3/4 + 5/6 +…+ (2n+1)/(2n+2)
      –> user có thể nhập n = 0, i chắc chắn phải chạy từ 0, s = 0

      2) S(n) = 1/2 + 1/4 + 1/6 + 1/8 + 1/2n
      –> user có thể nhập giá trị n > 0, i chắc chắn chạy tử 1, s = 0

Leave a Reply

Your email address will not be published.

*