2013年1月19日

摘要: 最近在复习算法,这道题是练手的过程中遇上的,感觉有点意思,拿出来分享一下心得。不扯闲话了,首先分析题目,最直观的做法就是从2开始遍历到n,对每个数判断其是否为素数。这是比较笨的做法。我们可以这样考虑,如果判断一个数N是否为素数,主要是看其有没有小于等于根号N的素因子。如果有则说明是合数,如果没有则可以断定其必为素数(想想这是为什么)。这样我们可以得到大概的一个递推逻辑:要求n以下的素数,可以先求出根号n以下的素数,根据前面的分析,如果某个数不能整除根号n以下的素数,则其必为素数;而要求根号n以下的素数,则又可以先求出sqrt(sqrt(n))以下的素数……这样,当开根号后的值小于10的时候,可 阅读全文
posted @ 2013-01-19 00:53 fancywyz 阅读(996) 评论(0) 推荐(0)

2012年3月16日

摘要: 如题,编写函数,实现:输入一个字符串,输出其中字符的所有可能组合,例如,func("abc")则输出为a,b,c,ab,ac,bc,abc;我的解法思路是这样的(如果哪位大哥有好的思路,也请贴出来哦),将结果看成这种形式:a,ab,abc,ac,b,bc,c;而如果是func("bc")的话,结果为b,bc,c,如果是func("c")的话就是c了。这里有一个规律:如果想得到abcd的组合的话,可以先得到abc的组合,对于abc的所有组合都加上一个字符d即:da,dab,dabc,dac,db,dbc,dc,对于得到的这个新组合,与原 阅读全文
posted @ 2012-03-16 14:45 fancywyz 阅读(1288) 评论(0) 推荐(0)