Project Euler 191
@see http://projecteuler.net/index.php?section=problems&id=191
♥0 |
Line 33 |
Modified 2009-06-27 18:02:48 |
MIT License
archived:2017-03-30 04:56:36
ActionScript3 source code
/**
* Copyright uwi ( http://wonderfl.net/user/uwi )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/1o8R
*/
package {
import flash.display.Sprite;
import flash.text.TextField;
import flash.utils.getTimer;
// @see http://projecteuler.net/index.php?section=problems&id=191
public class Euler191 extends Sprite {
private var _tf : TextField;
public function Euler191() {
_tf = new TextField();
_tf.width = 465;
_tf.height = 465;
addChild(_tf);
var s : int = getTimer();
_tf.appendText(solve(30).toString() + "\n");
var g : int = getTimer();
_tf.appendText((g - s).toString() + " ms\n");
}
private function solve(n : int) : Number
{
// (L,last A)=(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2)
var prev : Array = [1, 0, 0, 0, 0, 0];
for(var i : int = 1;i <= n;i++){
var cur : Array = [0, 0, 0, 0, 0, 0];
cur[0] = prev[0] + prev[1] + prev[2];
cur[1] = prev[0];
cur[2] = prev[1];
cur[3] = prev[3] + prev[4] + prev[5] + prev[0] + prev[1] + prev[2];
cur[4] = prev[3];
cur[5] = prev[4];
prev = cur;
}
return prev[0] + prev[1] + prev[2] + prev[3] + prev[4] + prev[5];
}
}
}