01/10/2018, 12:13
Ví dụ về hàm đệ quy
Ví dụ cho như sau :
A1=1
A(n)=n*(A1+A2+…+A(n-1)) (*)
Tính A(n) với n được nhập vào.
Và mình có đoạn code sau đây :
#include <iostream.h>
int tinhAn(int n);
int main()
{
int n;
cout<<"
Nhap vao n: ";
cin>>n;
cout<<"
Ket qua la: "<<tinhAn(n);
cout<<endl;
return 0;
}
int tinhAn(int n)
{
if (n==1) return 1;
return n*(1+tinhAn(n-1));
}
Mình phân vân tại chỗ này
int tinhAn(int n)
{
if (n==1) return 1;
return n*(1+tinhAn(n-1));
}
có đúng với cái (*) này hay không nữa ví nếu mình cho A(2) thì sẽ ra 4, A(3) thì sẽ ra 15
với
return n*(1+tinhAn(n-1));
còn với
return n*(0+tinhAn(n-1));
thì cho A(2) thì sẽ ra 2, A(3)=6
Mong được sự giúp đỡ của mọi người
Bài liên quan
Không.
Từ công thức ta có thể thấy A(n) phụ thuộc vào A(1), A(2),…, A(n-1) chứ không phải chỉ có A(n-1) như hàm
tinhAn
của bạn.Vậy mình phải sửa như thế nào cho hợp lý ? Bạn có ý kiến gì không ?
Code đúng như định nghĩa.
À, thì ra đơn giản là vậy
Cảm ơn bạn nhiều nha