随笔分类 - 递归
摘要:1 //2^n个运动员 2 #include<stdio.h> 3 int a[100][100]; 4 int n; 5 6 void fun(int n) 7 { 8 int u,v,j,i; 9 if(n==0) a[n][n]=1;10 else11 {12 fun(n-1);13 u=1<<(n-1);14 v=1<<n;15 for(i=0;i<u;i++)16 for(j=u;j<v;j++)17 a[i][j]=a[i][j...
阅读全文
摘要:1 #include<stdio.h> 2 void move(char a,char b) 3 { 4 printf("%c->%c\n",a,b); 5 } 6 void han(int n,char a,char b,char c) 7 { 8 if(n>0) 9 {10 han(n-1,a,c,b);11 move(a,b);12 han(n-1,c,b,a);13 }14 }15 int main()16 {17 int n;18 scanf("%d",&n);19 printf...
阅读全文
摘要:1 /*N皇后问题*/ 2 #include<stdio.h> 3 #include<string.h> 4 int a[20][20];//N皇后矩阵 5 int v[3][20];//v[0][i]表示列是否冲突;v[1][i]表示副对角线是否冲突; v[2][i]表示正对角线是否冲突 6 int n;//N皇后 7 int c[1000][20];//存放条件成立的结果 8 int num; 9 10 11 void fun(int cur)12 {13 int i;14 if(cur==n)15 {16 num++;17 ret...
阅读全文
摘要:1 /*#include<stdio.h> 2 #include<string.h> 3 4 int cur; 5 int a[20]; 6 7 void fun(int n)//不重复递归,即0,1 递归 8 { 9 int i;10 if(n==cur)11 {12 for(i=0;i<n;i++)13 printf("%d",a[i]);14 printf("\n");15 return;16 }17 a[n]=0;18 fun(n+1);19 20 a[...
阅读全文
摘要:1 #include<stdio.h> 2 #include<string.h> 3 int a[18]; 4 int v[18]={0}; 5 int t[33]={0}; 6 int N; 7 8 void init() 9 {10 int i,j;11 for(i=2;i<33;i++) 12 if(!t[i])13 for(j=2*i;j<33;j+=i)14 t[j]=1;15 }16 17 void fun1(int n) //方法一18 {19 int i;20 if(n==N && ! ...
阅读全文