摘要: (1)当n=1时,不论m的值为多少(m>0),只有一种划分即{1}; (2) 当m=1时,不论n的值为多少,只有一种划分即n个1,{1,1,1,...,1}; (3) 当n=m时,根据划分中是否包含n,可以分为两种情况: (a). 划分中包含n的情况,只有一个即{n}; (b). 划分中不包含n的情况,这时划分中最大的数字也一定比n小,即n的所有(n-1)划分。 因此 f(n,n) =1 + f(n,n-1); (4) 当n<m时,由于划分中不可能出现负数,因此就相当于f(n,n); (5) 但n>m时,根据划分中是否包含最大值m,可以分为两种情况: (a). 划分中包含m的 阅读全文
posted @ 2012-12-13 22:19 萧凡客 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 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... 阅读全文
posted @ 2012-12-13 20:42 萧凡客 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 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[... 阅读全文
posted @ 2012-12-13 12:26 萧凡客 阅读(162) 评论(0) 推荐(0) 编辑
摘要: sscanf函数sscanf(str+start,"%d%n",&v,&n);2011-05-19 20:56:00|分类:杭电acm|字号订阅 sscanf() - 从一个字符串中读进与指定格式相符的数据.函数原型: Int sscanf( const char *, const char *, ...);int scanf( const char *, ...);头文件: #include<stdio.h>说明: sscanf与scanf类似,都是用于输入的,只是后者以键盘(stdin)为输入源,前者以固定字符串为输入源。 第一个参数可以是一 阅读全文
posted @ 2012-12-13 10:16 萧凡客 阅读(264) 评论(0) 推荐(0) 编辑