|
|
发表于 2013-6-9 21:21:52
|
显示全部楼层
看了楼上的排列组合方式觉得还不错,我在网上找到了一种二叉树的递归调用的解法,感觉很好,分享给大家
#include<stdio.h>
int a[4][5];
int sum;
/*dfs()function.
@parameter row:二维数组的行号。
@parameter col:二维数组的列号。
@parameter index:二维数组a[row][col]的值。
*/
void dfs(int row,int col,int index)
{
if(a[row][col]==index && index==7)
sum++;
else
{
if(row+1<4)
dfs(row+1,col,index+1);
if(col+1<5)
dfs(row,col+1,index+1);
}
}
int main()
{
int row,col;
for(row=0;row<4;row++)
for(col=0;col<5;col++)
a[row][col]=row+col;
dfs(0,0,0);
printf("sum = %d\n",sum);
return 0;
} |
|