Euler Problem 16
Ways of dealing with integer overflow in javascript
by Andrew Poes
CSS
.print {
position: relative;
display: inline-block;
background-color: black;
color: white;
font-family: Helvetica, Helvetica-Neue, sans-serif;
font-weight: bold;
font-size: 24px;
letter-spacing: -1.5px;
padding: 4px 8px;
}
body {
background-color: #eeeeee;
}
}
JavaScript
$(document).ready(function() {
var arr = expArray(1000);
print(sum.apply(null, arr));
})
function sum() {
var s = 0;
for (var i = 0; i < arguments.length; ++i) {
s += arguments[i];
}
return s;
}
function expArray(exp) {
var a = [2];
var rem = 0;
for (var i = 0; i < exp - 1; ++i) {
var j = 0;
rem = 0;
for (j; j < a.length; ++j) {
var n = a[j] * 2;
a[j] = (n % 10) + rem;
rem = (n / 10) << 0;
}
if (rem > 0) {
a[j] = rem;
}
}
return a;
}
function print() {
var args = Array.prototype.slice.apply(arguments)
var str = ""
for (arg of args) {
str += arg + ", "
}
str = str.substring(0, str.length - 2)
var el = newel(str)
$("body").append(el)
$("body").append("</br>")
}
function newel(str) {
var el = document.createElement("div")
$(el).html(str)
$(el).addClass("print")
return el
}