duck pls come in
登录 | 论坛导航 -> 华新鲜事 -> 求学狮城 | 本帖共有 8 楼,当前显示第 6 楼 : 从楼主开始阅读 : 本帖树形列表 : 返回上一页
作者:cigar (等级:2 - 初出茅庐,发帖:296) 发表:2003-02-18 20:26:23  6楼 
:-)让你失望了,这个算法不是我想出来的。我也很佩服想出来这个算法的人。 个人觉得这道题目很没有意思(这时候,“不告诉你”跳出来说,这道题明明很好的嘛!)。从算法推测: 从这个数的的两个数的因式入手,例如24=2*12=3*8=4*6=6*4=8*3=12*2=24*1,如果2 可以被24整除,24的sets个数就会比原来24的sets数多出24/2=12的sets个数,但这时12的sets个数没有被完全算出来,仍然是0,所以24 的sets数是0;当发现3 能被24整除时,24的个数又增加了此时8的sets数,是1,而此时 8 的sets数是一,表示的是8=2*2*2,所以24=3*2*2*2这个set被计算了。当程序发现4可以被24整除时,找6,6=2*3在3能被6整除时已经成为1了,所以24=4*2*3这个set被计算在内了。到这是没有结束,24=4*6=6*4被认为是不一样的。6能被24整除,且此时4的sets已经被算出来了,4=2*2=4*1,所以24=6*2*2=6*4被考虑在内了,这时24的个数为4个了……以此分析可以发现24的所以因式可以不重不漏地考虑在内。以下是算出24的sets的intermedia results。当i=2是,2的所有sets数必然会被算出,i=n是,n的sets数也会被算出来,…… i=2 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 i=3 0 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 1 0 1 0 0 0 0 0 (more...)
非常感谢!
另外怎样才能让“不告诉你”“破例“告诉我们呢?
Put your OWN COOL signature here!
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表

本帖共有 8 楼,当前显示第 6 楼,本文还有 N-1 层楼,要不你试试看:点击此处阅读更多 >>



请登录后回复:帐号   密码