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

2015年(3)

2013年(23)

2012年(17)

我的朋友

发布时间:2013-01-17 12:11:46

? ? ? ? ?问题描述:写一个程序,用字典顺序把一个集合的所有子集找出来。? ? ? ? ?此题的思路来自《C语言名题精选百则技巧篇》:字典顺序,也就是字符串比较时的顺序规则。可以采取这样的思路(以下是我根据书上的思路进行归纳再加上我自己的理解得来的步骤):&n.........【阅读全文】

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

发布时间:2013-01-03 20:27:09

       问题描述:列出一个集合的所有子集,包括空子集合。       我的思路:回溯法的一种思路就是生成一颗子集树,而一个集合中的元素,要么存在于子集中,要么不存在,所以这又特殊化成一颗二叉树了。每当到达二叉树的底端时,就打印一次。很容易写出如下的代码:#include <stdio.h> #define MAX 1000  int n=3; //the number of the set elements int set[MAX]={1,2,3};&nb......【阅读全文】

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

发布时间:2013-01-02 21:07:29

         问题描述:在做筛法求质数的问题时,在删除非质数的数据时,有很多是重复删除的。例如,如果有一个数是3x7x17x23,那么在删除3的倍数时会删除它,删除7,17与23的倍数时也都会删除它。请写一个程序,在删除非质数时"绝对"不做重复的工作。         思路:有一个因式分解定理:任何一个合数都可以分解成若干个质数相乘的形式。那么,num一定可以分解成p的i次方乘以q的形式(p,q是质数且p<q)。所以,需要去除的数就变成了p的2次方,p的3次方,p的4次方......以......【阅读全文】

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

发布时间:2012-12-30 22:11:59

        问题描述:使用筛法求质数。有一个很神奇的筛子,可以给它一个数i,这个筛子有办法把i的所有倍数去掉。请用这个方法求出2到N之间的所有质数。要求,程序不能使用乘法和除法,只能用加或减,以求加快速度。        该问题的思路来自《C语言名题精选百则技巧篇》,很惭愧,我对这样的涉及一些数学知识的题很少有解决的办法,我需要在这一方面加强。        我把书中的思路归纳如下,并加上了我自己的一些想法。       ......【阅读全文】

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

发布时间:2012-12-29 21:40:32

       昨天太忙,没有时间做一个题,先记着,明天来补。       问题描述很简单,就是求N之内的所有质数并且打印出来。       思路:求质数有很多方法,我这里用一种比较高效的方法。我一步一步地说明方法。      1.比如判断一个数num是否为质数,那么就用num去对"i(i从2开始)直到根号num"取模,如果都不能整除就说明num是质数。      2.但是这样会有很多次多余的计算。从1到N,有很多数是......【阅读全文】

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

登录 注册