找回密码
 欢迎注册
查看: 7850|回复: 6

[讨论] 5个数字相加为指定数

[复制链接]
发表于 2010-3-19 09:04:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
在一个递增的整数数列中,怎么以最快的速度找到5个数,使其和为指定数
设数列个数为 N ,指定数为 M。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-3-19 09:42:34 | 显示全部楼层
设N个数为Num[N]
用M除以N,得到 商为A,余数B
for i=1  to N/2
   Num[i]=A+i
   Num[N-i]=A-i
next
然后把最大的数加上B
就可以了
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2010-3-19 10:11:15 | 显示全部楼层
没明白什么意思
怎么得到的是哪5个数呢
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2010-3-19 10:15:45 | 显示全部楼层
2楼的
你那好像不是这个题目吧
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-3-19 10:20:24 | 显示全部楼层
你是说从N个递增数中取5个值相加等于M吗?
递增没有规律的话,没什么快捷的方法吧,只能一个个组合试了
如果有规律的话就是先求M除以5的平均值,然后以平均值为中心一边递增,一边递减.然后在最大的值上加上M除以5的余数
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2010-3-19 10:25:02 | 显示全部楼层
增量没规律的话就只能一个个组合取么
那在取组合的时候有没有什么好的技巧 尽量少计算些呢
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2010-3-19 14:50:11 | 显示全部楼层
原来用5个指针写过一段代码
时间复杂度在o(n)里
不过漏解
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-4-19 08:17 , Processed in 0.089726 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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