Golang数组平分,数组拆分,数组分组

数组平分,把一个数组拆分成多个数组

package main

import "fmt"

func main() {
	arr1:=[]int{}
	//数组0~24
	for i := 0; i < 25; i++ {
		arr1=append(arr1, i)
	}
	//拆分4份
	fmt.Println("println:",splitArray(arr1,4))
	//拆分7份
	fmt.Println("println:",splitArray(arr1,7))
	//拆分12份
	fmt.Println("println:",splitArray(arr1,12))
}
//数组平分
func splitArray(arr []int, num int64) ([][]int) {
	max := int64(len(arr))
	if max < num {
		return nil
	}
	var segmens =make([][]int,0)
	quantity:=max/num
	end:=int64(0)
	for i := int64(1); i <= num; i++ {
		qu:=i*quantity
		if i != num {
			segmens= append(segmens,arr[i-1+end:qu])
		}else {
			segmens= append(segmens,arr[i-1+end:])
		}
		end=qu-i
	}
	return segmens
}

输出结果:

println1: [[0 1 2 3 4 5] [6 7 8 9 10 11] [12 13 14 15 16 17] [18 19 20 21 22 23 24]]
println2: [[0 1 2] [3 4 5] [6 7 8] [9 10 11] [12 13 14] [15 16 17] [18 19 20 21 22 23 24]]
println3: [[0 1] [2 3] [4 5] [6 7] [8 9] [10 11] [12 13] [14 15] [16 17] [18 19] [20 21] [22 23 24]]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值