首页 > 解决方案 > 在 Powershell 中将 n 个值相加得到 x

问题描述

我有一个值数组(大约 20 个),范围从大约9.50.001. 我需要将这些值加在一起以获得 15 到 85 之间的任何数字(或获得最接近的值)

测试数据:

[9.912,7.414,5.512, 5.43,5.303,5.041,5.025,4.944,3.509,  3.3,3.191,3.076,2.914,2.753, 2.29,1.955,1.917,1.822,1.626,1.526,1.489,1.482,1.362,1.354,1.311,1.222,1.154,0.904,0.799, 0.79,0.657,0.643,0.618,0.615,0.592,0.564,0.484, 0.48,0.447,0.419,0.415,0.328,0.325,0.288, 0.26,0.251,0.248,0.23,0.223,0.221,0.154,0.129,0.128,0.126,0.103,0.102,0.099,0.092,0.077,0.071,0.066, 0.06,0.046,0.037,0.028,0.023,0.007,0.003,0.003,0.003,0.002,0.001,0.001,0.001,0.001]

任何人都可以帮助我/这甚至可能吗?

标签: arrayspowershell

解决方案


你可以这样做:

$arr = @(9.912,7.414,5.512, 5.43,5.303,5.041,5.025,4.944,3.509,  3.3,3.191,3.076,2.914,2.753, 2.29,1.955,1.917,1.822,1.626,1.526,1.489,1.482,1.362,1.354,1.311,1.222,1.154,0.904,0.799, 0.79,0.657,0.643,0.618,0.615,0.592,0.564,0.484, 0.48,0.447,0.419,0.415,0.328,0.325,0.288, 0.26,0.251,0.248,0.23,0.223,0.221,0.154,0.129,0.128,0.126,0.103,0.102,0.099,0.092,0.077,0.071,0.066, 0.06,0.046,0.037,0.028,0.023,0.007,0.003,0.003,0.003,0.002,0.001,0.001,0.001,0.001)

$output = 0
$arr | foreach {
    if(($output + $_) -le 85){
        $output += $_
    }
}

$output

上面的示例将返回一个接近但小于 85 的数字


推荐阅读