chạy debug đi bạn ơi.
có gì gặp vấn đề nếu chưa hiểu thì đưa lên đây, mọi người trả lời cho.
theo mình chạy debug là cách tốt nhất để học lập trình. bạn sẽ thấy rõ nó chạy ra sao luôn.
vd n=3. Có bạn nào giải thích giúp mình cách hoạt động của hàm TinhXn với?Code:long TinhXn (int n) { if(n==0) return 1; long s = 0; for (int i=1; i<=n; i++) s = s + i * i * TinhXn(n-i); return s; }
với: Xo = 1; Xn = n*n*Xo + (n-1)*(n-1)*X1 +...+ 1*1*X(n-1).
IF YOU ARE ALONE , I'LL BE YOUR SHADOW
IF YOU WANT TO CRY, I'LL BE YOUR SHOULDER
IF YOU NEED HAPPY, I'LL BE YOUR SMILE
BUT ANYTIME YOU NEED A FRIEND
IT JUST BE ME !!!
chạy debug đi bạn ơi.
có gì gặp vấn đề nếu chưa hiểu thì đưa lên đây, mọi người trả lời cho.
theo mình chạy debug là cách tốt nhất để học lập trình. bạn sẽ thấy rõ nó chạy ra sao luôn.
mới học C làm gì đã biết debug ???
đây là đệ quy phi tuyến
mẫu chung của 1 đệ quy phi tuyến :
để hiểu vấn đề hoạt động bạn nên tìm hiểu nguyên tắc làm việc của đệ quy trước.PHP Code:void ten(...)
{
for (i=1;i<=n;i++)
{
//lam 1 viec gi do
if <dieu kien dung>
{
//lam 1 viec gi do
}
else
{
goi de quy
}
}
}
Mình chỉ muốn góp ý : đệ quy phi tuyến là 1 phương pháp hay nhưng lại là 1 giải pháp tồi.
Đệ quy nói chung là 1 phương pháp giải bài tập hay nhưng trên khía cạnh chương trình thì là 1 giải pháp tồi .
Hay : lời giải rút gọn và dễ hiểu
Tồi : Nhược điểm của đệ quy : dễ bùng nổ bộ nhớ tạm thời gây ra over head ........và dễ gây ra lỗi do điều kiện chủ chốt.
Ct đệ quy chạy ko tối ưu về bộ nhớ .
trở về bài toán :
khi gặp dòng này nó sẽ tạm dừng công việc hiện tại lại và xử lý : TinhXn(n-i);PHP Code:s = s + i * i * TinhXn(n-i);
trước .
Trong tinhxn(n-i) lại có tinhxn(..) nên nó lại tạm dừng công việc tại đó và tính cái tinhxn() trước cái bên trên.
ok????
^_,^
Facebook : https://www.facebook.com/langmaninternet
Bùi Tấn Quang
Code:void Nhap(int a[], int n) { if(n==0) return; //lệnh return này sẽ trả về giá trị cho hàm là gì vậy? Nhap(a, n-1); printf("Nhap phan tu cho mang: "); scanf("%d",&a[n-1]); }
IF YOU ARE ALONE , I'LL BE YOUR SHADOW
IF YOU WANT TO CRY, I'LL BE YOUR SHOULDER
IF YOU NEED HAPPY, I'LL BE YOUR SMILE
BUT ANYTIME YOU NEED A FRIEND
IT JUST BE ME !!!
Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.
ý lệnh của lệnh return là trả về giá trị đứng sau nó và thoát khỏi hàm. Ở đây nếu n==0 nó sẽ thoát khỏi hàm do đó sẽ dẫn đến việc kết thúc đệ quy.
bài này là đệ quy tuyến tính.
Để hay hơn nên chuyển điều kiện dừng là :
if (n<=0 )...
tại sao vậy : ?????
để chẳng may do 1 lỗi nào đó ( quá trình nhập chẳng hạn ) ta lại đem sử dụng với n<0 =>>>>>>>>> sẽ gây ra treo máy .
^_,^
Facebook : https://www.facebook.com/langmaninternet
Bùi Tấn Quang
Great! Thanks
IF YOU ARE ALONE , I'LL BE YOUR SHADOW
IF YOU WANT TO CRY, I'LL BE YOUR SHOULDER
IF YOU NEED HAPPY, I'LL BE YOUR SMILE
BUT ANYTIME YOU NEED A FRIEND
IT JUST BE ME !!!