如果C > 100/2 则X = (B+1)*100 否则 X = B*100好像有点问题,这样不是变成四舍五入了嘛,这样做后面的值还匹配的起来么
int sum = 400; int n = 10; ; int avg = sum / n;//平均值 var res= Enumerable.Repeat(avg, n).ToArray();//把平均值均分放入集合 for (int i = 0; i < n-1; i++) { int temp = res[i]; res[i] = (res[i] / 100) * 100; //把当前值取整 res[i + 1] += temp % 100; //把除以100的余数,并入下个元素
sum/n 将值取整,得出B: 2
差值 C: A-B*100 = 60
如果C > 100/2 则X = (B+1)*100 否则 X = B*100依此循环递减sum值 ,当sum < B*100时,则是最后一个数据,退出循环。
1.sum % 10 = 0 应该是 sum % 100 = 0 吧,不然不能满足“每份要能被100整除(可以为0),数组中所有元素的和为sum ” 2.看你的排列好像是随机的,有什么意义?
int n = 10; ; int avg = sum / n;//平均值 var res= Enumerable.Repeat(avg, n).ToArray();//把平均值均分放入集合 for (int i = 0; i < n-1; i++)
{
int temp = res[i];
res[i] = (res[i] / 100) * 100; //把当前值取整
res[i + 1] += temp % 100; //把除以100的余数,并入下个元素
}