재 귀 / 분할 정책 2 분 검색 의 재 귀 와 비 재 귀

2907 단어 데이터 구조
규모 문제: 분 치 전략 은 해결 하기 어 려 운 규모 가 큰 문 제 를 규모 가 작은 똑 같은 문제 로 분해 합 니 다.
#include
using namespace  std;
int fac(unsigned int n)//       
{
	if(n<=1)
		return 1;
	else
	{
		return fac(n-1)*n;
	}
}
int fun(unsigned int n)//       
{
	int sum =1;
	for(unsigned int i=1;i<=n;i++)
	{
		sum=sum*i;
	}
	return sum;
}
int main()
{
	int n, sum;
	cin>>n;
	//sum=fun(n);
	sum=fac(n);
	cout<
#include
using namespace  std;
int fac(unsigned int n)//         
{
	if(n<=2)
	{
		return 1;
	}
	else 
	{
		return fac(n-1)+fac(n-2);
	}
}
int fun(unsigned int n)//            
{
	if(n<=0)
	{
		return 0;
	}
	if(n<=2)
	{
		return 1;
	}
	int a=1,b=1,c;
	for(unsigned int i=3;i<=n;++i)
	{
		c=a+b;
		b=a;
		a=c;
	}
	return c;
}
int main()
{
	int n,sum;
	cin>>n;
    //sum=fun(n);
	sum=fac(n);
    cout<
/*template

void PrintArray(const _Con&ibr)//             
{
	//cout< &ibr)//     vector                      
 {
	 vector::const_iterator it=ibr.begin();
	 for(;it!=ibr.end();++it)
	 {
		 cout<
void PrintArray(_II  _F,_II   _L)//               
{
	for(;_F != _L;++_F)
	{
		cout<
#include
#include
using namespace  std;

template 
void PrintArray(_II  _F,_II   _L)//               
{
	for(;_F != _L;++_F)
	{
		cout<br[mid])
		{
			left=mid+1;
		}
		else
		{
			while(mid>left&&val==br[mid-1])//           
				--mid;
			pos=mid;
			break;
		}
	}
	return pos;
}
	int main()
{
	int ar[]={12,23,34,45,56,67,78,89,90,100};
	int n=sizeof(ar)/sizeof(ar[0]);
	vector iar(ar,ar+n);
	PrintArray(iar.begin(),iar.end());
	int pos = FindValue(ar,n,23);
	cout<
int FindValue(int br[],int n,int val)//                     
{
	int left=0,right=n-1;
	int pos=-1;
	while(left<=right)//          ,        <=
	{
		//int mid = (left+right)/2;//         
		int mid=(right-left+1)/2+left;//        
		if(val
br[mid]) { left=mid+1; } else { while(mid>left&&val==br[mid-1])// --mid; pos=mid; break; } } return pos; }
int SearchValue(int br[],int left,int right,int val)//        
{
	int pos=-1;
	int mid=(right-left+1)/2+left;
	if(val
br[mid]) { SearchValue(br,mid+1,right,val); } else { while(mid>left&&br[mid-1]==val) { --mid; pos=mid; } return pos; } } int FindValue(int br[],int n,int val) { if(NULL==br||n<1) { return -1; } return SearchValue(br,0,n-1,val); }

좋은 웹페이지 즐겨찾기