flash on 2015-5-8
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
archived:2017-03-20 01:57:43
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 значения
}
}
}