以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教 各位老大  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=54422)

--  作者:youwei_dong
--  发布时间:2014/7/28 10:40:00
--  请教 各位老大
请教  如何把 19781 拆分成几个小于 2000  并且 不相同的 数值   用什么公式和函数啊~~
--  作者:有点甜
--  发布时间:2014/7/28 10:46:00
--  
拆分成几个?对数值有什么要求?这样做有什么意义?
--  作者:youwei_dong
--  发布时间:2014/7/28 10:50:00
--  

几个都行 只要是小于2000的就行   

 


--  作者:有点甜
--  发布时间:2014/7/28 10:50:00
--  

代码

 

Dim num As Integer = 19781
Dim rs As new List(Of Integer)
Do While num >= 2000
    Dim r As Integer = Rand.Next(1999)
    If rs.Contains(r) = False Then
        rs.Add(r)
        num -= r
    End If
Loop
rs.Add(num)

For Each n As Integer In rs
    output.show(n)
Next


--  作者:youwei_dong
--  发布时间:2014/7/28 10:52:00
--  

 太好了 我试试 

 


--  作者:youwei_dong
--  发布时间:2014/7/28 10:57:00
--  
拆分后数值的和 还要等于  19781
--  作者:有点甜
--  发布时间:2014/7/28 10:58:00
--  
 等于啊
--  作者:youwei_dong
--  发布时间:2014/7/28 10:59:00
--  
老大 拆分后是数值 要大于 1000 < 2000
--  作者:有点甜
--  发布时间:2014/7/28 11:01:00
--  

Dim num As Integer = 19781
Dim rs As new List(Of Integer)
Do While num >= 2000
    Dim r As Integer = Rand.Next(1001,1999)
    If rs.Contains(r) = False Then
        rs.Add(r)
        num -= r
    End If
Loop
rs.Add(num)

For Each n As Integer In rs
    output.show(n)
Next


--  作者:有点甜
--  发布时间:2014/7/28 11:02:00
--  
 多试几次即可,最后一个有点偏差的。