You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ruby转VB.NET代码求助:将数字拆分为尽可能均等的部分

数字均等拆分的Ruby转VB.NET实现

原Ruby代码逻辑解析

先拆解下你找到的Ruby代码逻辑,搞懂了就好转换:

  • n/p 是整数除法(舍去小数部分),比如32除以3得到10
  • n%p 是取余数,32除以3余2,意味着需要有2个元素是n/p + 1(也就是11)
  • p - n%p 是剩下的元素数量,3-2=1,这部分元素直接用n/p(也就是10)
  • 最后把这两组数拼接起来,就得到了最均等的拆分结果

VB.NET实现代码

Function SplitInto(n As Integer, p As Integer) As Integer()
    Dim baseNum = n \ p
    Dim remainder = n Mod p
    ' 生成余数个数的baseNum+1数组
    Dim part1 = Enumerable.Repeat(baseNum + 1, remainder).ToArray()
    ' 生成剩余个数的baseNum数组
    Dim part2 = Enumerable.Repeat(baseNum, p - remainder).ToArray()
    ' 合并两个数组返回
    Return part1.Concat(part2).ToArray()
End Function

' 测试示例
Dim result = SplitInto(32, 3)
' 输出结果:11 11 10
For Each num In result
    Console.Write(num & " ")
Next

说明

  • VB.NET中用\做整数除法(对应Ruby的n/p),Mod取余数(对应Ruby的n%p)
  • 用Enumerable.Repeat批量生成重复元素的数组,再通过Concat完成数组拼接,和原Ruby代码逻辑完全一致

内容的提问来源于stack exchange,提问作者kick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 12:53:14