재 귀 / 분할 정책 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);
}