Tính tổng 1/2+1/4+1/6....+1/2n

Cho mình hỏi làm sao tính được tổng 1/2+1/4+1/6…+1/2n vậy mọi người?

#include<stdio.h>

int main()
{    float x,i=1;
     float y=0;
     float n;
    printf("nhap x:");
    scanf("%f",&x);  
    do{ 
     if(x>0){
      y=y+(float)n/i;
      i++; 
      n++; }
    else 
    printf("xin ban nhap lai \n ");
   }  while(i<=x );
      if(y>0)
    printf("x=%0.1f",y);
  return 0;
   
}

EDIT (@library):
Friendly reminder, @huyen_cao cậu nhớ chú ý các điểm sau ở các post tiếp theo nhé:

  • Dùng markdown để format code
  • Đặt tên topic ngắn gọn
  • Phân loại topic và tag phù hợp

Mình ko biết phân loại như thế nào và mình chỉ muốn mọi người giúp thôi nếu để ngắn thế sao mọi người biết dc

//Cách 1: Thông thường
#include<stdio.h>
int main()
{    int n;
     float sum=0;
    printf("nhap n:");
    scanf("%d",&n);  
    
	for(int i=1;i<=n;i++){
		sum+=1/(2*n);
	}
	printf("Tong la: %0.1f", sum);
	
	return 0;   
}

//Cách 2: đệ qui
#include<stdio.h>
int main()
{    float n;
     float sum=0;
    printf("nhap n:");
    scanf("%d",&n);  
	printf("Tong la: %0.1f", sum(n));
	
	return 0;   
}

float sum(int n){
	if(n==1){
		return 1/2;
	}
	return 1/(2*n) + sum(n-1);
}
1 Like

Lần sau chú ý coding conventions và đặt tên biến làm sao để có nghĩa cho người ta đọc vào nhanh hiểu dc code nhất.
Ví dụ biến y của bạn để tính tổng thì hãy đặt là sum như thế đọc code sẽ dễ hiểu hơn cho mình và người đọc code nữa.
Tiếp theo là cách thục vào ra trong block {} cho chuẩn xác.

3 Likes

Cảm ơn thắc mắc của cậu!

Liên quan tới các category, cậu có thể đọc FAQ để biết thêm chi tiết về các category:
https://daynhauhoc.com/faq

Thường mọi người sẽ đọc title để nắm sơ qua vấn đề của cậu, và đọc description trong post đầu tiên để biết rõ hơn (nếu người đó có thể giúp cậu). Vì vậy, trừ khi cậu mô tả không rõ ràng trong description, nếu không mọi người sẽ hiểu.
Một title dài thực ra không giúp cho mọi người nắm được sơ qua thắc mắc của cậu. Thậm chí đôi khi, những từ quan trọng nhất bị lược bớt đi. Nếu cậu muốn tăng cơ hội nhận được sự giúp đỡ, tớ recommend cậu tập làm điều đó.

Mong cậu hiểu rằng việc nhỏ này không chỉ giúp cậu, mà còn giúp tăng trải nghiệm sử dụng diễn đàn cho tất cả các thành viên khác. Nó cũng thể hiện good manner (hay “cậu được giáo dục tốt”), thiện chí xây dựng và cả tinh thần học hỏi của cậu.
Tớ không kỳ vọng cậu ngay lập tức thay đổi đâu, nhưng chí ít tớ muốn thấy thiện chí mong muốn cải thiện của cậu.

Hi vọng những giải thích ở trên giúp cậu hiểu được lý do, và từ đó hợp tác với bọn tớ trong tương lai! :smile:

5 Likes

Cảm ơn bạn rất nhiều bạn giúp mình hiểu về vòng lặp for nhiều hơn mình đã tìm ra kết quả

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?