Chinaunix首页 | 论坛 | 博客
  • 博客访问: 176923
  • 博文数量: 43
  • 博客积分: 611
  • 博客等级: 中士
  • 技术积分: 1053
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-02 13:37
文章存档

2015年(3)

2013年(23)

2012年(17)

我的朋友

发布时间:2013-02-15 10:47:37

      递归算法见:整数的所有不同分割数目--递归算法     思路:非递归与递归的思维顺序是互逆的,所以很容易写出以下代码。#include <stdio.h>#define MAX 1000int p[MAX][MAX]={0};int main(){ int n=2; int index_n,index_m; //initialize the p[n][1]=1.........【阅读全文】

阅读(1355) | 评论(0) | 转发(0)

发布时间:2013-02-15 09:59:14

     问题描述:把一个正整数写成若干个正整数的和。比如4=3+1,2+2,2+1+1,1+1+1+1,再加上自己,就一共有5种分割方式。     思路:求解4的所有分割方式,实际上就是求分割中以4为最大值而且和为4的所有分割方式,可以用p[4][4]来表示。抽象出来,就是p[n][m],表示分割中以m为最大值而.........【阅读全文】

阅读(1098) | 评论(0) | 转发(0)

发布时间:2013-01-26 09:23:57

      问题描述:列出一个集合的元素个数为k的所有子集。      思路:在字典顺序列出所有子集的基础上判断元素个数就可以了,比较简单。代码如下:#include <stdio.h> #define MAX 1000 int main() { int n=5; int set[MAX]={1}; int index=0; int c.........【阅读全文】

阅读(1576) | 评论(0) | 转发(0)

发布时间:2013-01-23 20:10:37

       问题描述:以字典顺序产生所有排列。假定集合set是连续的并且按从小到大顺序排列好了的,并且有n个元素。       思路:算法的思路分成两个部分:A是递归产生以某个数字开头的排列,B是调用A来依次生成  1为第一位的所有排列,2为第一位的所有排列,....n为第一位的.........【阅读全文】

阅读(1285) | 评论(0) | 转发(0)

发布时间:2013-01-22 16:03:58

        我觉得这是一个很巧秒的算法。思路非常直接,从代码里可以很容易看出来,再单步调试查看set数组的值就可以很清楚地明白算法的过程。        代码如下:#include <stdio.h> #define MAX 1000 int n=3; //the number of set element int set[MAX]={1,2.........【阅读全文】

阅读(1187) | 评论(0) | 转发(0)
给主人留下些什么吧!~~
留言热议
请登录后留言。

登录 注册