Skip to content

Instantly share code, notes, and snippets.

@nkgokul
Last active September 14, 2019 09:37
Show Gist options
  • Select an option

  • Save nkgokul/fc8e03e75ff07919d76df5dea79ab75d to your computer and use it in GitHub Desktop.

Select an option

Save nkgokul/fc8e03e75ff07919d76df5dea79ab75d to your computer and use it in GitHub Desktop.

Revisions

  1. nkgokul revised this gist Sep 14, 2019. 1 changed file with 83 additions and 83 deletions.
    166 changes: 83 additions & 83 deletions recursive_digit_sum
    Original file line number Diff line number Diff line change
    @@ -1,96 +1,96 @@
    {
    function recuresiveDigitSumMaths(number){
    finalRecuresiveDigitSum = 0;
    while(number){
    digit = number % 10;
    finalRecuresiveDigitSum += digit;
    if (finalRecuresiveDigitSum>9) finalRecuresiveDigitSum -=9;
    number = (number-digit)/10
    }
    return (finalRecuresiveDigitSum);
    }

    function recuresiveDigitSumMod9(number){
    return number %9;
    }

    {
    function recuresiveDigitSumMaths(number){
    finalRecuresiveDigitSum = 0;
    while(number){
    digit = number % 10;
    finalRecuresiveDigitSum += digit;
    if (finalRecuresiveDigitSum>9) finalRecuresiveDigitSum -=9;
    number = (number-digit)/10
    }
    return (finalRecuresiveDigitSum);
    }
    function recuresiveDigitSumMaths(number) {
    finalRecuresiveDigitSum = 0;
    while (number) {
    digit = number % 10;
    finalRecuresiveDigitSum += digit;
    if (finalRecuresiveDigitSum > 9) finalRecuresiveDigitSum -= 9;
    number = (number - digit) / 10
    }
    return (finalRecuresiveDigitSum);
    }

    function recuresiveDigitSumMod9(number) {
    return (number % 9);
    }

    function recuresiveDigitSumMaths(number) {
    finalRecuresiveDigitSum = 0;
    while (number) {
    digit = number % 10;
    finalRecuresiveDigitSum += digit;
    if (finalRecuresiveDigitSum > 9) finalRecuresiveDigitSum -= 9;
    number = (number - digit) / 10
    }
    return (finalRecuresiveDigitSum);
    }

    function recuresiveDigitSumBrute(number){
    digitSum = 0;
    while(number){
    digit = number % 10;
    digitSum += digit;
    number = (number-digit)/10
    }
    if (digitSum <= 9) {
    return digitSum;
    }
    else{
    return recuresiveDigitSumBrute(digitSum);
    }
    }
    function recuresiveDigitSumBrute(number) {
    digitSum = 0;
    while (number) {
    digit = number % 10;
    digitSum += digit;
    number = (number - digit) / 10
    }
    if (digitSum <= 9) {
    return digitSum;
    }
    else {
    return recuresiveDigitSumBrute(digitSum);
    }
    }


    function runTestforFixedValues(algorithms) {
    fixedValues = [0,1,10,123,999,1000,123456789];
    fixedValues.map(function(number){
    console.log('--------------------------------');
    console.log("Input : " + number);
    algorithms.map(function(algorithm){
    console.log("Using " + algorithm.name + " " + algorithm(number)); ;
    });
    });
    }
    function runTestforFixedValues(algorithms) {
    fixedValues = [0, 1, 10, 123, 999, 1000, 123456789];
    fixedValues.map(function (number) {
    console.log('--------------------------------');
    console.log("Input : " + number);
    algorithms.map(function (algorithm) {
    console.log("Using " + algorithm.name + " " + algorithm(number));;
    });
    });
    }

    function runTestforRandom(algorithms) {
    randomValues = [];
    max = 100000000;
    number = getRandomNumber(1,max);
    console.log('--------------------------------');
    console.log("Input : " + number);
    algorithms.map(function(algorithm){
    console.log("Using " + algorithm.name + " " + algorithm(number)); ;
    });
    }
    function runTestforRandom(algorithms) {
    randomValues = [];
    max = 100000000;
    number = getRandomNumber(1, max);
    console.log('--------------------------------');
    console.log("Input : " + number);
    algorithms.map(function (algorithm) {
    console.log("Using " + algorithm.name + " " + algorithm(number));;
    });
    }

    function runTests() {
    algorithms = [recuresiveDigitSumBrute, recuresiveDigitSumMaths, recuresiveDigitSumMod9];
    console.log("===========================================");
    console.log("Running Tests for Fixed Values\n");
    runTestforFixedValues(algorithms);
    console.log("===========================================");
    console.log("\nRunning Tests for Random Values\n");
    loop(runTestforRandom, 10, [algorithms]);
    }
    function runTests() {
    algorithms = [recuresiveDigitSumBrute, recuresiveDigitSumMaths, recuresiveDigitSumMod9];
    console.log("===========================================");
    console.log("Running Tests for Fixed Values\n");
    runTestforFixedValues(algorithms);
    console.log("===========================================");
    console.log("\nRunning Tests for Random Values\n");
    loop(runTestforRandom, 10, [algorithms]);
    }



    function getRandomNumber(start = 1, end = 10) {
    if (start > end) {
    [start, end] = [end, start];
    }
    let range = end - start + 1;
    return (parseInt(Math.random() * range) % range) + start;
    }
    function getRandomNumber(start = 1, end = 10) {
    if (start > end) {
    [start, end] = [end, start];
    }
    let range = end - start + 1;
    return (parseInt(Math.random() * range) % range) + start;
    }

    const loop = (fn, times = 5, params = []) => {
    if (!times) {
    return;
    }
    fn(...params);
    loop(fn, times - 1, params);
    };
    const loop = (fn, times = 5, params = []) => {
    if (!times) {
    return;
    }
    fn(...params);
    loop(fn, times - 1, params);
    };

    runTests();
    runTests();
    }
  2. nkgokul revised this gist Sep 14, 2019. 1 changed file with 23 additions and 4 deletions.
    27 changes: 23 additions & 4 deletions recursive_digit_sum
    Original file line number Diff line number Diff line change
    @@ -10,6 +10,22 @@ function recuresiveDigitSumMaths(number){
    return (finalRecuresiveDigitSum);
    }

    function recuresiveDigitSumMod9(number){
    return number %9;
    }

    {
    function recuresiveDigitSumMaths(number){
    finalRecuresiveDigitSum = 0;
    while(number){
    digit = number % 10;
    finalRecuresiveDigitSum += digit;
    if (finalRecuresiveDigitSum>9) finalRecuresiveDigitSum -=9;
    number = (number-digit)/10
    }
    return (finalRecuresiveDigitSum);
    }

    function recuresiveDigitSumBrute(number){
    digitSum = 0;
    while(number){
    @@ -29,9 +45,10 @@ function recuresiveDigitSumBrute(number){
    function runTestforFixedValues(algorithms) {
    fixedValues = [0,1,10,123,999,1000,123456789];
    fixedValues.map(function(number){
    console.log('--------------------------------');
    console.log("Input : " + number);
    algorithms.map(function(algorithm){
    console.log("Using" + algorithm.name + algorithm(number)); ;
    console.log("Using " + algorithm.name + " " + algorithm(number)); ;
    });
    });
    }
    @@ -40,18 +57,20 @@ function runTestforRandom(algorithms) {
    randomValues = [];
    max = 100000000;
    number = getRandomNumber(1,max);
    console.log('--------------------------------');
    console.log("Input : " + number);
    algorithms.map(function(algorithm){
    console.log("Using" + algorithm.name + algorithm(number)); ;
    console.log("Using " + algorithm.name + " " + algorithm(number)); ;
    });
    }

    function runTests() {
    algorithms = [recuresiveDigitSumBrute, recuresiveDigitSumMaths];
    algorithms = [recuresiveDigitSumBrute, recuresiveDigitSumMaths, recuresiveDigitSumMod9];
    console.log("===========================================");
    console.log("Running Tests for Fixed Values\n");
    runTestforFixedValues(algorithms);
    console.log("\nRunning Tests for \n");
    console.log("===========================================");
    console.log("\nRunning Tests for Random Values\n");
    loop(runTestforRandom, 10, [algorithms]);
    }

  3. nkgokul revised this gist Sep 14, 2019. 1 changed file with 3 additions and 3 deletions.
    6 changes: 3 additions & 3 deletions recursive_digit_sum
    Original file line number Diff line number Diff line change
    @@ -31,7 +31,7 @@ function runTestforFixedValues(algorithms) {
    fixedValues.map(function(number){
    console.log("Input : " + number);
    algorithms.map(function(algorithm){
    console.log("Using" + algorithm + algorithm(number)); ;
    console.log("Using" + algorithm.name + algorithm(number)); ;
    });
    });
    }
    @@ -42,7 +42,7 @@ function runTestforRandom(algorithms) {
    number = getRandomNumber(1,max);
    console.log("Input : " + number);
    algorithms.map(function(algorithm){
    console.log("Using" + algorithm + algorithm(number)); ;
    console.log("Using" + algorithm.name + algorithm(number)); ;
    });
    }

    @@ -52,7 +52,7 @@ function runTests() {
    console.log("Running Tests for Fixed Values\n");
    runTestforFixedValues(algorithms);
    console.log("\nRunning Tests for \n");
    loop(runTestforRandom, 10, algorithms);
    loop(runTestforRandom, 10, [algorithms]);
    }


  4. nkgokul revised this gist Sep 14, 2019. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion recursive_digit_sum
    Original file line number Diff line number Diff line change
    @@ -17,7 +17,7 @@ function recuresiveDigitSumBrute(number){
    digitSum += digit;
    number = (number-digit)/10
    }
    if (digitSum > 9) {
    if (digitSum <= 9) {
    return digitSum;
    }
    else{
  5. nkgokul revised this gist Sep 14, 2019. 1 changed file with 34 additions and 12 deletions.
    46 changes: 34 additions & 12 deletions recursive_digit_sum
    Original file line number Diff line number Diff line change
    @@ -1,36 +1,58 @@
    {
    function recuresiveSum(number){
    finalRecursiveSum = 0;
    function recuresiveDigitSumMaths(number){
    finalRecuresiveDigitSum = 0;
    while(number){
    digit = number % 10;
    finalRecursiveSum += digit;
    if (finalRecursiveSum>9) finalRecursiveSum -=9;
    finalRecuresiveDigitSum += digit;
    if (finalRecuresiveDigitSum>9) finalRecuresiveDigitSum -=9;
    number = (number-digit)/10
    }
    return (finalRecursiveSum);
    return (finalRecuresiveDigitSum);
    }

    function recuresiveDigitSumBrute(number){
    digitSum = 0;
    while(number){
    digit = number % 10;
    digitSum += digit;
    number = (number-digit)/10
    }
    if (digitSum > 9) {
    return digitSum;
    }
    else{
    return recuresiveDigitSumBrute(digitSum);
    }
    }

    function runTestforFixedValues() {

    function runTestforFixedValues(algorithms) {
    fixedValues = [0,1,10,123,999,1000,123456789];
    fixedValues.map(function(number){
    console.log("" + number + "-----" +recuresiveSum(number));
    console.log("Input : " + number);
    algorithms.map(function(algorithm){
    console.log("Using" + algorithm + algorithm(number)); ;
    });
    });
    }

    function runTestforRandom() {
    function runTestforRandom(algorithms) {
    randomValues = [];
    max = 10000;
    max = 100000000;
    number = getRandomNumber(1,max);
    console.log("" + number + "-----" +recuresiveSum(number));
    console.log("Input : " + number);
    algorithms.map(function(algorithm){
    console.log("Using" + algorithm + algorithm(number)); ;
    });
    }

    function runTests() {
    algorithms = [recuresiveDigitSumBrute, recuresiveDigitSumMaths];
    console.log("===========================================");
    console.log("Running Tests for Fixed Values\n");
    runTestforFixedValues();
    runTestforFixedValues(algorithms);
    console.log("\nRunning Tests for \n");
    loop(runTestforRandom, 10);
    loop(runTestforRandom, 10, algorithms);
    }


  6. nkgokul created this gist Sep 14, 2019.
    55 changes: 55 additions & 0 deletions recursive_digit_sum
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,55 @@
    {
    function recuresiveSum(number){
    finalRecursiveSum = 0;
    while(number){
    digit = number % 10;
    finalRecursiveSum += digit;
    if (finalRecursiveSum>9) finalRecursiveSum -=9;
    number = (number-digit)/10
    }
    return (finalRecursiveSum);
    }


    function runTestforFixedValues() {
    fixedValues = [0,1,10,123,999,1000,123456789];
    fixedValues.map(function(number){
    console.log("" + number + "-----" +recuresiveSum(number));
    });
    }

    function runTestforRandom() {
    randomValues = [];
    max = 10000;
    number = getRandomNumber(1,max);
    console.log("" + number + "-----" +recuresiveSum(number));
    }

    function runTests() {
    console.log("===========================================");
    console.log("Running Tests for Fixed Values\n");
    runTestforFixedValues();
    console.log("\nRunning Tests for \n");
    loop(runTestforRandom, 10);
    }



    function getRandomNumber(start = 1, end = 10) {
    if (start > end) {
    [start, end] = [end, start];
    }
    let range = end - start + 1;
    return (parseInt(Math.random() * range) % range) + start;
    }

    const loop = (fn, times = 5, params = []) => {
    if (!times) {
    return;
    }
    fn(...params);
    loop(fn, times - 1, params);
    };

    runTests();
    }