Thắc mắc về cách tính tổng dãy căn liên tiếp

em mới học về lập trình và có bài tập như này


và em tìm trên mạng thì thuật toán bài này giải như thế này

for (int i = 1; i <= n; i++) 
    sum = sqrt(2 + sum);

Nhưng em thấy thuật toán chỗ sum kia k có gì liên quan đến i thì sao lúc tính n dấu căn thì nó biết tính bao nhiêu dấu căn nhỉ?

vậy bạn thì ảnh hưởng của tính tổng từ 1-> n rồi , bản chất i là biến đếm của vòng lặp người ta lợ dụng để tính tổng từ 1-> n, bằng cách cộng theo i. với bày này có n dấu căn thì sẽ lặp lại n lần i không dùng lợi dụng
p/s : không phải cứ vòng lặp sẽ phải lấy biến đếm i để sử dụng cả

1 Like
#include <stdio.h>
#include <math.h>
void nhap(int &n, float &x );
float tinhcan(int n,float x);
void xuat(float can);
void main()
{
	int n;
	float x;
	nhap(n,x);
	float can=tinhcan(n,x);
	xuat(can);
}
void nhap(int &n, float &x )
{
	scanf("%d%f", &n, &x);
}
float tinhcan(int n,float x)
{
	float can;
	can=sqrt(x);
	for(int i=2;i<=n;i++)
		can=sqrt(x+can);
	return can;
}
void xuat(float can)
{
	printf("%.2f", can);
}

cái của bạn mình thấy không ổn lắm.

1 Like

cảm ơn bạn mình hiểu r.

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