100步问题

 回溯问题,可以递归解决,不断试探走一步,走两步

void go(int n,int step,int& sum)
{
	n = n - step;
	if(n > 0)
	{
	    go(n,1,sum);
		go(n,2,sum);
	}
	else if(n==0) 
	{
		sum ++;
	}
}

int main(void)  
{
	int sum = 0;
	go(10,1,sum);
	go(10,2,sum);
	printf("sum=%d",sum);
	
	return 0;
}

 

int foo(int n)
{
	if(n < 0) return 0;
	if(n == 1 || n ==0)
	  return 1;

	return foo(n-1) + foo(n-2);
}

 

posted on 2014-10-28 21:46  kangbry  阅读(143)  评论(0编辑  收藏  举报

导航