当前位置: 代码迷 >> C语言 >> [求助]看看这C语言程序错在哪
  详细解决方案

[求助]看看这C语言程序错在哪

热度:164   发布时间:2006-04-25 13:55:00.0
以下是引用gaga在2006-4-24 14:48:00的发言:

下面是我写的,不过比较了好几次,没有想到更好的算法
......

你的算法把所有导弹高度为第一次发送炮弹所能拦截的导弹数量都算了一遍,但是不需要都算的


----------------解决方案--------------------------------------------------------
呵呵想不出来更简单的了,
----------------解决方案--------------------------------------------------------
你的算法是对于
2 389,207,155,300,299,170,158,65
算出对第n个导弹开始发炮弹时所能拦截得导弹数量
但是可以这么算:
iHeight = 第1个导弹高度
iCount = 从第一个导弹开始拦截时可以拦截得导弹数量
for i = 1; i < 导弹数量; i ++
{
if 第i个导弹高度 > iHeight
if 从第i个导弹开始拦截时可以拦截的导弹数量 > iCount
iCount = 从第i个导弹开始拦截时可以拦截的导弹数量
iHeight = 第i个导弹高度
else
continue
else
continue(如果第i个导弹高度比前面的低的话,那么从第i个导弹开始开炮拦截肯定比早开炮拦截的数量少)
}
这样的话可以少大部分的计算

[此贴子已经被作者于2006-4-25 17:41:06编辑过]


----------------解决方案--------------------------------------------------------

说的好
哈哈
不过我不太精通那几个if怕弄错了
想法很好


----------------解决方案--------------------------------------------------------
{if(max<b[i]) max=b[i];}
第二楼

----------------解决方案--------------------------------------------------------
怎么了
第25楼
----------------解决方案--------------------------------------------------------


----------------解决方案--------------------------------------------------------
都是厉害的人啊
----------------解决方案--------------------------------------------------------
  相关解决方案