| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1679 人关注过本帖
标题:[求助]看看这C语言程序错在哪
只看楼主 加入收藏
aogun
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:638
专家分:0
注 册:2006-4-5
收藏
得分:0 
以下是引用gaga在2006-4-24 14:48:00的发言:

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

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


世界上总共有 10 种人,一种懂得什么是二进制 ,一种不懂。
2006-04-25 13:55
gaga
Rank: 1
等 级:新手上路
威 望:2
帖 子:307
专家分:0
注 册:2006-4-5
收藏
得分:0 
呵呵想不出来更简单的了,

明天的明天还有明天。 可是今天却只有一个。 public Copy from 无缘今生
2006-04-25 16:57
aogun
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:638
专家分:0
注 册:2006-4-5
收藏
得分:0 
你的算法是对于
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编辑过]


世界上总共有 10 种人,一种懂得什么是二进制 ,一种不懂。
2006-04-25 17:39
gaga
Rank: 1
等 级:新手上路
威 望:2
帖 子:307
专家分:0
注 册:2006-4-5
收藏
得分:0 

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


明天的明天还有明天。 可是今天却只有一个。 public Copy from 无缘今生
2006-04-25 17:57
亮亮520
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-4-20
收藏
得分:0 
{if(max<b[i]) max=b[i];}
第二楼
2006-04-25 19:32
tianyi1
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2006-4-20
收藏
得分:0 
怎么了
第25楼

2006-04-26 12:13
独孤求败_
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-4-27
收藏
得分:0 

2006-04-27 09:11
jessa
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-4-27
收藏
得分:0 
都是厉害的人啊
2006-04-27 14:27
快速回复:[求助]看看这C语言程序错在哪
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016925 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved