找回密码
 注册
LabVIEW+单片机学习套件全套教程资料下载[免费]LabVIEW论坛精华列表贴USB0816数据采集卡《LabVIEW宝典》
LabWindows/CVI论坛精华贴NET0816以太网数据采集卡RC0210远程设备授权系统 关闭关停锁定打开设备 户外分布式数据采集
NET1624低速高精度以太网数据采集卡WIFI0824SD无线WIFI网络数据采集卡脱机运行 SD存储 小尺寸微型 串口采集远程采集 安卓 手持移动采集 纪录仪
查看: 1038|回复: 10

求2个零值之间的数的和

[复制链接]
发表于 2009-5-26 11:57:40 | 显示全部楼层 |阅读模式
问题是:数组0132024210234101420...通过循环不断求出2个零值之间的数的和
例如01320,得出6,不知道大家有没很简单的算法!
发表于 2009-5-26 12:25:53 | 显示全部楼层
有,把0当作分隔符,分成N/4个1D数组,然后对1D数组求和就可以了。
回复 顶

使用道具 举报

 楼主| 发表于 2009-5-26 14:01:59 | 显示全部楼层
不是太明白,用什么函数呢?
回复 顶

使用道具 举报

发表于 2009-5-26 16:41:14 | 显示全部楼层
0与0之间数的位数确定么,确定就直接取直接算
没确定,就转化成字符串,判断0的位置,然后再计算
回复 顶

使用道具 举报

发表于 2009-5-26 19:18:08 | 显示全部楼层
对每个数值进行判断,如果=0,将当前的和输入数组,如果<>0,继续算求和。个人感觉这样逻辑简单些。

本帖子中包含更多资源

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

×
回复 顶

使用道具 举报

发表于 2009-5-26 19:35:07 | 显示全部楼层
本帖最后由 labc 于 2009-5-26 19:39 编辑

请看:
LV 8.x版, 需要安装OpenG的工具包, 用于删掉数组里的重复元素.
Labc

本帖子中包含更多资源

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

×
回复 顶

使用道具 举报

 楼主| 发表于 2009-5-27 09:22:25 | 显示全部楼层
回复 顶

使用道具 举报

发表于 2009-5-27 09:38:41 | 显示全部楼层
从算法的时空性能上分析,我个人认为,5#的算法是最好的。甚至比我想到的都要好。
回复 顶

使用道具 举报

 楼主| 发表于 2009-5-27 10:20:25 | 显示全部楼层
但是5楼的缺点是如果第一个数是0的话,输出数组上也会出现0,而实际是不需要的,我只想让相邻0之间的数的和输出,比如说013203450,输出应该是6 12!但5楼的算法的确让你眼前一亮!呵呵
回复 顶

使用道具 举报

发表于 2009-5-27 12:06:22 | 显示全部楼层
那不很简单么?把数组第一个数剔除就可以了
回复 顶

使用道具 举报

发表于 2009-5-27 18:29:09 | 显示全部楼层
5楼的方法修正一下就行了...
2种方法, 思路各不相同哈.

Labc
回复 顶

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cpubbs论坛. ( 粤ICP备09171248号 )

GMT+8, 2026-9-29 13:39 , Processed in 0.057185 second(s), 12 queries , Gzip On, File On.

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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