查看: 3069| 回复: 7
跳转到指定楼层
上一主题 下一主题
收起左侧

Additive Number

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
定义像这样的数是Additive number:112358,因为:1+1=2,1+2=3,2+3=5,3+5=8. 1212243660也是,虽然1+2!=1,但是12+12=24,12+24=36,24+36=60

对给定范围,如:从1到10,000,000,找出所有Additive number.

(我对题目有点疑惑:199100199算不算?1+99=100,99+100=199,如果算的话情形还挺复杂。不过话说回来,即使限定了说additive的因子都位数相同,我目前也没有好思路……)


上一篇:最简洁的快速排序
下一篇:sorting之类的算法应该提前记住吗?
🔗
KevinFromJail 2013-11-18 16:29:53 | 只看该作者
全局:
首先你得明确你提到的那一点,是不是因子位数相同。
我觉得这个题应该罗列前两位的排列,比如11 12以及迭代次数就决定了生成的additive number。 迭代次数1 对应1112,迭代次数2对应111223,迭代次数3对应11122335就超出范围了。
考虑所有需要罗列的前两位数的组合最多是1000*1000的数量级,平均迭代次数是3次左右,应该能在给定时间算出来所有的组合。
回复

使用道具 举报

🔗
北美农民 2013-11-19 01:49:16 | 只看该作者
全局:
我觉得这题暴力搜索挺好做的.
回复

使用道具 举报

🔗
 楼主| kang1415926 2013-11-19 01:50:53 | 只看该作者
全局:
北美农民 发表于 2013-11-19 01:49
我觉得这题暴力搜索挺好做的.

用recursive呢?
回复

使用道具 举报

🔗
北美农民 2013-11-19 02:08:27 | 只看该作者
全局:
kang1415926 发表于 2013-11-18 12:50
用recursive呢?

recursion只是一种implement手段, 你当然可以用了
回复

使用道具 举报

🔗
 楼主| kang1415926 2013-11-19 02:24:56 | 只看该作者
全局:
北美农民 发表于 2013-11-19 02:08
recursion只是一种implement手段, 你当然可以用了

嗯,谢谢~ 我今天再写一写……先把暴力写出来,优化什么的还得再琢磨琢磨
回复

使用道具 举报

🔗
北美农民 2013-11-19 02:40:01 | 只看该作者
全局:
kang1415926 发表于 2013-11-18 13:24
嗯,谢谢~ 我今天再写一写……先把暴力写出来,优化什么的还得再琢磨琢磨

这题生成的规则需要弄清楚, 比如100001能不能算100+1还是必须算10000+1. 接下来你只需要枚举前两个数,一旦这两个数确定,那么当前的答案就确定了。 当然你可能需要hash排除重复的答案
回复

使用道具 举报

🔗
readman 2013-11-30 12:09:55 | 只看该作者
全局:
本帖最后由 readman 于 2013-11-30 12:20 编辑

>< 占楼..刚才方法不对. 再想想
想起来了. 以前是做过. 这题复杂度很低的. 比如说2位的话, 总长度知道. 除一下看看是不是2位的倍数. 然后在看3位. 因为是做加法所以要满足A+B=C就是起码要有三个长度才可以. 在加上int本身的长度.其实复杂度很低
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表