Thắc mắc về hàm đệ quy

Em chào các anh chị . Bài tập của em là tìm kết quả của chương trình sau. Anh chị giúp em cách làm với :

 #include<stdio.h>
int s,n,count,a;
void TRY(int k,int last){
	for(int v=last+1;v<=a;v++){
	s+=v;
	if(k==n){
	if(s==a)count++;
	}else TRY(k+1,v);
	s-=v;
	}
	}
int main(int argc,char** argv){
n=3;a=11;count=0;s=0;
TRY(1,0);
printf("%d\n",count);
} 

k hiểu bạn muốn giúp như thế nào?
C1: copy code vào máy tính => run
C2: chạy bằng tay, Bắt đầu chương trình từ dòng đầu tiên của hàm main()
Đọc từng dòng code 1. xem nó đang làm gì, giá trị các biến khi này bằng bn?
Cho tới khi kết thúc chương trình (dòng cuối cùng của hàm main())
Lời khuyên là nên làm cách 2 trước, có kết quả rồi thực hiện cách 1 => so sánh KQ. Nếu KQ khác nhau => thực hiện tại cách 2 cho tới khi kq trùng nhau
Lời khuyên 2: khi làm 1 bài tập nào (nếu có thể) bạn hãy viết code trên giấy trước. Hoặc viết bằng notepad, word (những trình soạn thảo văn bản không có nhắc lệnh) Rồi mới thực hiện code trên phần mềm
Chúc bạn luôn tìm được niềm vui khi code.

3 Likes

sr bạn quên không nói rõ là cách này phải giải ra giấy. K đc dùng máy.KQ=5 mà k hiểu sao ra 5 đc ý

Nói vậy chứ tôi biết mà.
Là cách 2 đó bạn. bạn cứ dò từng dòng code đi.
Bài tập này giúp bạn hiểu hơn về luồng thực thi trong máy tính. Và nắm chắc kiến thức của các lệnh.
Cố lên.
đến chỗ nào chưa hiểu thì đưa lên mn giải thích cho chứ kêu làm hộ bạn chắc k ai giúp đâu. hì

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