Advertisement
dimipan80

Number with Largest Sum of Digits

Nov 15th, 2014
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /* Write a JavaScript function findLargestBySumOfDigits(arr) that accepts as a parameter an array of numbers
  2. or/and strings and returns the element with the largest sum of its digits. The function should take
  3. a variable number of arguments. It should return undefined when 0 arguments are passed or when some
  4. of the arguments is not an integer number. Write a JS program largestSumOfDigits.js that invokes your function
  5. with the sample input data below and prints its output at the console. */
  6.  
  7. "use strict";
  8.  
  9. function findLargestBySumOfDigits(arr) {
  10.     if (!arr.length) {
  11.         return undefined;
  12.     }
  13.  
  14.     for (var i = 0; i < arr.length; i += 1) {
  15.         if (arr[i] == Number(parseInt(arr[i])) && arr[i] % 1 === 0) arr[i] = parseInt(arr[i]);
  16.         else return undefined;
  17.     }
  18.  
  19.     var maxSum = 0;
  20.     var indexMax = 0;
  21.     for (i = 0; i < arr.length; i += 1) {
  22.         var number = Math.abs(arr[i]);
  23.         var sum = 0;
  24.         do {
  25.             sum += number % 10;
  26.             number = parseInt(number / 10);
  27.         } while (number);
  28.  
  29.         if (sum > maxSum) {
  30.             indexMax = i;
  31.             maxSum = sum;
  32.         }
  33.     }
  34.  
  35.     return arr[indexMax];
  36. }
  37.  
  38. console.log(findLargestBySumOfDigits([5, 10, 15, 111]));
  39. console.log(findLargestBySumOfDigits([33, 44, -99, 0, 20]));
  40. console.log(findLargestBySumOfDigits(['hello']));
  41. console.log(findLargestBySumOfDigits([5, 3.3]));
  42. console.log(findLargestBySumOfDigits(['32', '149', '-96', '428']));
  43. console.log(findLargestBySumOfDigits([]));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement