projEuler4.ts

This commit is contained in:
Andrew Morris
2022-05-31 10:11:26 +10:00
parent fbbeed0020
commit 7aafed34b5
2 changed files with 39 additions and 1 deletions

View File

@@ -0,0 +1,33 @@
export default function main() {
let largest = 0;
for (let i = 999; i >= 100; i--) {
for (let j = i; j >= 100; j--) {
const product = i * j;
if (product <= largest) {
break;
}
if (isPalindrome(product)) {
largest = product;
}
}
}
return largest;
}
function isPalindrome(n: number) {
let nStr = `${n}`;
let lenM1 = nStr.length - 1;
let halfLen = nStr.length / 2;
for (let i = 0; i < halfLen; i++) {
if (nStr[i] !== nStr[lenM1 - i]) {
return false;
}
}
return true;
}

View File

@@ -245,7 +245,12 @@ pub fn op_sub(left: Val, right: Val) -> Val {
Val::Number(_) => Val::Undefined, // TODO: toString etc
Val::String(string_data) => {
let right_index = match right.to_index() {
None => { return Val::Undefined }
None => {
return match right.val_to_string().as_str() == "length" {
true => Val::Number(string_data.len() as f64),
false => Val::Undefined,
}
},
Some(i) => i,
};