Viết chương trình tính n dấu căn


(Ngan Tran) #1

em chỉ mới tự học lập trình trong hè này. và còn nhiều khó khăn. em gặp khó khăn khi giải bt kiểu này. mong mọi người giúp đỡ


(Nguyễn Tấn Khoa) #2
#include <stdio.h>
#include <math.h>
#include <conio.h>

int main() 
{
	int n;
	
	printf("Nhap vao n: ");
	scanf("%d", &n);
	
	double sum = 0;
	
	for (int i = 1; i <= n; i++)
		sum = sqrt(2 + sum);
		
	printf("S(n) = %.3f", sum);
	getch();

	return 0;
}

Code của em nè :stuck_out_tongue: , em không biết anh đang viết bằng ngôn ngữ gì nên em viết bằng C. :slight_smile: Lần sau anh nhớ nói rõ là viết bằng ngôn ngữ gì nha. :wink:


PS: Người thảo luận để tìm ra cách giải hay cho một bài toán khó sẽ trở thành lập trình viên giỏi. Người hay hỏi bài tập thì không. Còn bạn thì sao?


(Đinh Thiện Khải) #3

Mình tưởng ở đây chỉ hỏi phương pháp, không hỏi bài. Bạn nên chỉ cho chủ thớt cách làm hơn là show code ra như vậy :smiley: Mình nghĩ thế :smiley:


(Tao Không Ngu.) #4

\sqrt{2\:+\sqrt{2\:+\sqrt{2\:+\:\sqrt{2\:+\sqrt{2}}}}}
lim = 2.


(Nguyễn Tấn Khoa) #5

Lúc đầu em cũng nghĩ vậy, nhưng mà không biết cách trình bày sao cho anh ấy hiểu. :disappointed_relieved: Thôi cho anh ấy sourse luôn. :grinning:


(Quốc Hùng) #6

pascal nhé :wink:

var sum: extended;
    i,n: integer;
begin
   for i:= 1 to n do begin
       sum := sqrt(2+sum);
   end;
end.

bài này chủ yếu là tạo 1 vòng lặp để lồng các căn bậc vào vs nhau th


(Ngan Tran) #7

Cho CHỊ/em hỏi là nếu bài cho căn bậc n í. Thì dùng hàm gì hay cách làm như nào ạ? em mù tịt vụ này @@


( Ngô Doãn Tuấn) #8

Đưa code luôn thì còn gọi là thảo luận không ta ?


(Tao Không Ngu.) #9

This post was flagged by the community and is temporarily hidden.


(Nguyễn Tấn Khoa) #10

Em giải thích rồi mà :’(

Còn:

là em nhắc anh ấy thôi. :sob:


(Vương N Guyễn) #11

anh ơi… a có thể giải thích rõ hộ e được k ak ? sum là gì vậy ? và a nói rõ cái thuật toán cho e được k a thánks a…!


(Nguyễn Tấn Khoa) #12

sum chỉ tên của một tên biến do mình đặt thôi bạn à. :stuck_out_tongue:
Bạn xem kỹ code mình nhé :slight_smile:, có dòng mình ghi là double sum = 0; trong đó ý. :wink:

Thuật toán chỉ đơn giản là tạo một vòng lặp để lông các căn bậc vào nhau thôi bạn. :slight_smile:

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

Biến n là số dấu căn nhập từ bàn phím.

Nếu n = 1 thì ta có: sum = sqrt(2 + sum); chỉ lặp 1 lần.
Lúc này sum = 0 nên ta có sum = sqrt(2) ≈ 1.414213562

Nếu n = 2 thì ta có: sum = sqrt(2 + sum); lặp 2 lần.
sum = 0 nên ta có sum = sqrt(2) ≈ 1.414213562 (lần thứ nhất).
Giờ sum ≈ 1.414213562 → sum = sqrt(2 + sum); lần 2 ta sẽ có sum = sqrt(2 + 1.414213562) ≈ 1.847759065

Cứ thế mà tới :smiley:


PS: Mình còn nhỏ mà bạn gọi mình là anh thấy ngại ngại sao ấy :sweat_smile:.


(Hung) #13

A post was split to a new topic: Hướng dẫn cách vẽ hình


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