jtw 发表于 2013-3-13 03:52:37

请教一个有关数组的问题[已解决]

本帖最后由 jtw 于 2013-3-14 10:48 编辑

已知数组$array=
现得到一个变量值$x=68,用什么方法可以判断出这个‘68’是数组中哪几个数之和,并返回这几个数。

魔导 发表于 2013-3-13 21:52:36

本帖最后由 魔导 于 2013-3-13 21:53 编辑

这个的答案好像 非单一哦
就像:
      $array =
      $a = 9
      该返回 那几个数呢?
       4+5,8+1,7+2,2+3+4.......

kevinch 发表于 2013-3-13 22:29:19

一楼的转换成二进制数比较好判断

jtw 发表于 2013-3-14 09:37:47

转换成二进制的用什么方法判断呀?请大神指教,谢谢!
另这个数组是有规律的,依次增加2倍。

jtw 发表于 2013-3-14 09:41:10

$x=68
返回的结果应该是唯一的$a=4,$b=64
就是不知道用什么方法好,用排列组合不知道可不可以?

kevinch 发表于 2013-3-14 10:31:04

Dim $array=

$num=68
$result=""

For $n=0 To UBound($array)-1
        If BitAND($array[$n],$num)>0 Then
                If $result="" Then
                        $result=$array[$n]
                Else
                        $result&=" "&$array[$n]
                EndIf
        EndIf
Next
MsgBox(0,"结果",$num&@CRLF&$result)这个试下

jtw 发表于 2013-3-14 10:43:32

非常感谢楼上的,要的就是这个效果

leibin0121 发表于 2013-5-24 17:12:22

感谢分享 学习学习

jianganew 发表于 2016-6-6 16:20:31

感谢分享,学习一下。
页: [1]
查看完整版本: 请教一个有关数组的问题[已解决]