flash on 2015-5-8

by Cheshir
Five programming problems every Software Engineer should be able to solve in less than 1 hour
https://blog.svpino.com/2015/05/07/five-programming-problems-every-software-engineer-should-be-able-to-solve-in-less-than-1-hour
♥0 | Line 84 | Modified 2015-05-09 02:35:41 | MIT License
play

ActionScript3 source code

/**
 * Copyright Cheshir ( http://wonderfl.net/user/Cheshir )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/zNzq
 */

/*
Five programming problems every Software Engineer should be able to solve in less than 1 hour
https://blog.svpino.com/2015/05/07/five-programming-problems-every-software-engineer-should-be-able-to-solve-in-less-than-1-hour
*/
package {
    import flash.text.TextField;
    import flash.display.Sprite;
    public class FlashTest extends Sprite {
        private var traceField:TextField = new TextField();
        
        private var listToSumm:Array = [0,1,15.4,'some',12,24,0x134ad,'fix'];
        private var listToId:Array = ['first','second','third','fourth'];
        private var toBigValue:Array = [50, 2, 1, 9, 34, 9];
        
        public function FlashTest() {
            // write as3 code here..
            traceField.autoSize = 'left';
            addChild(traceField);
            traceField.text = summListFor( listToSumm ).toString();
            traceField.appendText('\n'+summListWhile( listToSumm )  );
            traceField.appendText('\n'+summListRecurtion( listToSumm ));
            traceField.appendText('\n'+createIdList( listToId, listToSumm ));
            traceField.appendText('\n'+getFibbonachi( 100 ));
            traceField.appendText('\n'+getBiggestValue( toBigValue ));
         //   summListRecurtion( listToSumm )
        }
        private function getHundertSequence():void{
            
        }

        private function getBiggestValue(list:Array):String {
            // чтобы получить самое большое число... нужно отсортировать полученный массив таким образом, чтобы первыми шли цифры с самым большим значением слева
            // Но не самое большое значение числа...
            list.sort();
            list.reverse();
            var result:Number=0;
            var resultString:String = '';
            for(var i:int=0; i<list.length; i++){
                resultString+=list[i];
            }
            result = Number(resultString);
            return resultString;
        }

        private function getFibbonachi(steps:int=10):Array{
            var result:Array = [0,1];
            for(var i:int=2; i<steps; i++){
                result.push(result[i-2]+result[i-1]);
            }
            return result;
        }
        private function createIdList(ids:Array, list:Array):Array{
            var result:Array = [];
            var count:int = 0;
            for(var i:int=0; i<list.length; i++){
                count++;
                if(ids[i]){
                    result.push(ids[i],list[i]);
                } else {
                    result.push(count, list[i]);
                }
            }
            return result;
        }
        
        private function summListFor(list:Array):Number{
            var summ:Number=0;
            for(var i:int=0; i<list.length; i++){
                if(list[i] as Number){
                    summ+=list[i];
                }
            }
            return summ;
        }
        private function summListWhile(list:Array):Number{
            var summ:Number=0;
            var reestablish:Array = [];
            var i:int = list.length;
            while(i>0){
                var a:Number = list[i];
                if(a){
                    summ+=a;
                }
                i--;
            }
            return summ;
        }
        private function summListRecurtion(list:Array, depth:int=0):Number{
            if(list.length-1 <= depth){
                return list[depth] as Number;    // Выход из рекурсии
            }
            if(list[depth] as Number){
                return list[depth]+summListRecurtion(list, depth+1);
            }
            return summListRecurtion(list, depth+1); // Это позволяет пропустить не Number значения
        }
    }
}