解题思路:
注意事项:
参考代码:
#include<stdio.h>
int n,sum;
int a[21],b[21];
void dfs(int k)
{
int i,j,l,p;
if(k>n)
{
sum++;
return ;
}
for(i=1;i<=n;i++)
{
if(b[i]==0&&i!=a[k]) //notice
{
b[i]=1;
dfs(k+1);
b[i]=0;
}
}
}
int main()
{
int i,j;
while(scanf("%d",&n)!=EOF)
{
for(i=1;i<=n;i++)
{
a[i]=i;
b[i]=0;
}
sum=0;
dfs(1);
printf("%d\n",sum);
}
}
0.0分
0 人评分
震宇大神的杀毒软件 (C语言代码)浏览:1241 |
C语言程序设计教程(第三版)课后习题11.5 (C语言代码)浏览:974 |
大神老白 (C语言代码)浏览:611 |
C语言训练-自由落体问题 (C语言代码)浏览:1738 |
C语言程序设计教程(第三版)课后习题1.5 (C++代码)浏览:759 |
输出正反三角形 (C语言代码)格式错误!!!浏览:1141 |
printf基础练习2 (C语言代码)浏览:745 |
蛇行矩阵 (C语言代码)浏览:753 |
C语言程序设计教程(第三版)课后习题7.2 (C语言代码)浏览:542 |
C语言程序设计教程(第三版)课后习题8.9 (C语言代码)浏览:834 |