兰色幻想 发表于 2011-5-28 20:21

先进先出数组转换练习

      这是一个利用函数实现先进先出法中要用到的一个技巧,具体如下:
             已知有一数组
                     {4;6;2;2}和5
             要求:转换成
                     {4;1;0;0}    '该数组的和等于给定的数字5

             即:按顺序从数组的取数,如果第1个数字大于给定的数5,从第1个数中取出5个,如果第1个数字小于5则全部取出来(如本题的第一个数字4,它小于5,则全部取出),然后再从第2个数字中取出剩余的数量(本题中还需要从第2个数字6中取出5-4=1 个数量),如果第1和第2数的和还是小于给定的数,则继续向下取,直到取出的“数字和”等于提供的数字。

蝶·舞 发表于 2011-5-28 21:42

**** Hidden Message *****公式很原始,也很长

QQ9947 发表于 2011-5-28 23:57

本帖最后由 兰色幻想 于 2011-5-29 05:51 编辑

没好思路,弄个长长的:
**** Hidden Message *****

chunlin1wang 发表于 2011-5-29 00:26

**** Hidden Message *****

chunlin1wang 发表于 2011-5-29 09:08

如果不要求数字格式还可以减:=TEXT({4;6;2;2}-TEXT(MMULT((ROW(2:5)>{1,2,3,4})*1,{4;6;2;2})-5,"[<]\0"),"[<0]\0")

wuxingai 发表于 2011-5-29 17:09

本帖最后由 wuxingai 于 2011-5-29 17:11 编辑

**** Hidden Message *****

砂海 发表于 2011-5-29 23:46

来学习下,:lol

TT147258369 发表于 2011-5-30 21:56

来学习下{:011:}

JLxiangwei 发表于 2011-6-1 11:04

学习                  

chunlin1wang 发表于 2011-6-7 19:16

兰版老师怎么不给评分了?{:1_1:}
页: [1] 2 3
查看完整版本: 先进先出数组转换练习