June 2018 Update

This commit is contained in:
Ingy döt Net 2018-06-22 20:57:24 +00:00
parent ba8067c3b7
commit 22f33d4004
5278 changed files with 84726 additions and 14379 deletions

View file

@ -1,37 +1,37 @@
func add_with_carry(result, addend, addendpos) {
loop {
while (result.len < addendpos+1) {
result.append(0);
};
var addend_digits = (addend.to_i + result[addendpos].to_i -> to_chars);
result[addendpos] = addend_digits.pop;
addend_digits.len > 0 || break;
addend = addend_digits.pop;
addendpos++;
result.append(0)
}
var addend_digits = (addend.to_i + result[addendpos] -> to_s.chars)
result[addendpos] = addend_digits.pop
addend_digits.len > 0 || break
addend = addend_digits.pop
addendpos++
}
}
 
func longhand_multiplication(multiplicand, multiplier) {
var result = [];
var multiplicand_offset = 0;
 
var result = []
var multiplicand_offset = 0
 
multiplicand.reverse.each { |multiplicand_digit|
var multiplier_offset = multiplicand_offset;
var multiplier_offset = multiplicand_offset
multiplier.reverse.each { |multiplier_digit|
var multiplication_result = (multiplicand_digit.to_i * multiplier_digit.to_i -> to_s);
var addend_offset = multiplier_offset;
var multiplication_result = (multiplicand_digit.to_i * multiplier_digit.to_i -> to_s)
 
var addend_offset = multiplier_offset
multiplication_result.reverse.each { |result_digit_addend|
add_with_carry(result, result_digit_addend, addend_offset);
addend_offset++;
};
multiplier_offset++;
};
multiplicand_offset++;
};
return result.join.reverse;
add_with_carry(result, result_digit_addend, addend_offset)
addend_offset++
}
multiplier_offset++
}
multiplicand_offset++
}
 
return result.join.reverse
}
say longhand_multiplication('18446744073709551616', '18446744073709551616');
 
say longhand_multiplication('18446744073709551616', '18446744073709551616')