关于递归调用
#include<stdio.h>int ans = 0;
int num[10];
int visit[10];
void Solve()
{
double sum = num[0] + (double)num[1] / num[2] + (double)(num[3]*100+num[4]*10+num[5])/(num[6]*100+num[7]*10+num[8]);
if(sum == 10)
{
ans ++;
}
}
void dfs(int index)
{
int i;
if(index==9)
{
Solve();
return ;
}
for(i = 1 ; i <10 ; i ++)
{
if(visit[i]==0)
{
visit[i]=1;
num[index] = i;
dfs(index+1);
visit[i]=0;
}
}
}
int main()
{
dfs(0);
printf("%d\n",ans);
return 0;
}
这是1~9全排列的部分程序,这其中的递归调用,是通过怎样的形式调用;顺序?
[此贴子已经被作者于2016-10-24 16:19编辑过]