杨辉三角:
#define ROW 10
void Fun(int (*arr)[ROW])
{
arr[0][0]=1;
for(int i = 1;i < ROW;i++)
{
for(int j = 0;j <= i;j++)
{
if(j == 0 || i == j)
{
arr[i][j] = 1;
}
else
{
arr[i][j] = arr[i-1][j-1]+arr[i-1][j];
}
}
}
}
void Show(int (*brr)[ROW])
{
for(int i = 0;i <ROW;i++)
{
for(int j = 0;j <=i;j++)
{
printf("%d ",brr[i][j]);
}
printf("\n");
}
}
int main()
{
int arr[ROW][ROW]={};
Fun(arr);
Show(arr);
return 0;
}
斐波那锲:
int Fabonico(int n)
{
int f1 = 1;
int f2 = 1;
int f3 = 1;
for(int i = 3;i <= n;i++)
{
f3 = f1+f2;
f1 = f2;
f2 = f3;
}
return f3;
}
int Fabonico2(int n)
{
if(n == 1 || n== 2)
{
return 1;
}
else
{
return Fabonico2(n-1)+Fabonico2(n-2);
}
}
二分法:
int BinSearch(int *str,int p,int q,int key)//p为开始元素下标,q为最后的元素的下标,key为要查找的元素
{
assert(*str != NULL);
if(p < q)
{
int mid = (q-p)/2 + p;
if(str[mid] == key)
{
return mid;
}
else if(str[mid] > key)
{
return BinSearch(str,p,mid-1,key);
}
else if(str[mid] < key)
{
return BinSearch(str,mid+1,q,key);
}
}
}
汉诺塔
void move(char pos1,char pos2)
{
printf("%c==>%c\n",pos1,pos2);
}
void Hanno(int n,char pos1,char pos2,char pos3)
{
if(n == 1)
{
move(pos1,pos3);
}
else
{
Hanno(n-1,pos1,pos3,pos2);
move(pos1,pos3);
Hanno(n-1,pos2,pos1,pos3);
}
}
int main()
{
Hanno(64,'A','B','C');
printf("==========\n");
Hanno(2,'A','B','C');
printf("==========\n");
Hanno(3,'A','B','C');
return 0;
}
*/