Mọi người ơi e muốn hỏi về thuật toán đệ quy cũng như hướng giải với. Bài này hơi khoai 
Tính tổng các số chẵn trong số nguyên dương n bằng đệ quy
Điều kiện dừng là 0; khi gặp 0 return 0;
Return n+tenham(n-2);
Nếu n%2==0;
Ví dụ n=6
Tông sẽ là: 6+4+2;
Khi n%2!=0 thì có nghĩa n là số lẻ thì trả kq khác.
Ví dụ số 5.
Thì return (n-1)+tenham((n-1)-2);
Vì là số lẻ nên lui 1 đơn vị sẽ ra số chẵn
n = 234252
Sum = 2 + 4 + 2 + 2 = 10
1 Like
bác hiểu nhầm ý e rồi, ý e là nếu số n có dạng xyz, nếu x hoặc z là số chẵn thì tính tổng x+z cơ bác ạ
bài trên suy nghĩ sai.
int dequy(int n){
if (n<0) return -1; // dung khi n<0
int k=(n%10)%2; // so du chia het cho 2.
if ((n/10)==0){
return n; // neu n chia 10 = 0 return 0.
}else if (k==0){ // neu so du = 0.
return n%10+ dequy(n/10); // vi du 20: 20%10 = 0 + 20/10 = 2
}else
return dequy(n/10); //nguoc lai n/10 !=0 va so du != 0 vd: 201/10 = 20. 20/10 = 2.
}
3 Likes
e cảm ơn bác nhiều lắm
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?