01/10/2018, 10:12

Giải thuật đệ quy tìm quy luật dãy số

Cho dãy A={4,3,-2,-6,-5,0,4,…} xây dựng định nghĩa đệ quy cho việ tính An(n>=0) xây dựng giải thuật đệ quy tính An tính A10?

Mong mọi người giúp mình với

HK boy viết 12:15 ngày 01/10/2018

Bài này dễ nhìn thấy quy luật này. A(n) = A(n-1) - A(n-2) - 1

UPD: Dãy này tuần hoàn xừ nó rồi đề nhạt thật…

Trần Hoàn viết 12:18 ngày 01/10/2018

Hoặc là làm thế này nếu cảm thấy cái quy luật của bạn @sueruan012 đưa ra là không dễ nhìn thấy
mảng Input = {4, 3, -2, -6, -5, 0}
nếu n < 6 thì return Input[n]
nếu không thì return A[n - 6]

Nguyen Dinh viết 12:21 ngày 01/10/2018

Đoạn code như thế này nhưng kết quả nó lại ra -1 bạn ơi

#include <iostream>
using namespace std;

int f(int n){
	
	if(n>0){
	
		return f(n-1) - f(n-2) - 1;	
	
	}
	else{
		return 4;
		
	}
}

int main(){

	cout<<f(1);
}
Nguyen Dinh viết 12:14 ngày 01/10/2018

Đã từng nghĩ tới mà bài này lại phải làm bằng đệ quy bạn ah

Trần Hoàn viết 12:28 ngày 01/10/2018

Đã làm đệ quy bao giờ chưa mà viết được code này vậy
Mà cái mình đưa ra cũng là đệ quy nhé.

Nguyen Dinh viết 12:26 ngày 01/10/2018

Mình mới học code c mà bạn. sai ở đâu bạn chỉnh hộ mình vs

Trần Hoàn viết 12:24 ngày 01/10/2018

Bạn phải để ý chứ. Nếu cout f(1) thì nó tính bằng f(0) - f(-1) - 1 à
Thêm điều kiện kiểm tra vào.

Phạm Trọng Thắng viết 12:16 ngày 01/10/2018

chuẩn rồi. ngắn gọn xúc tích

Bài liên quan
0