w3resource

JavaScript: Calculate the sum of n + n/2 + n/4 + n/8 + ....

JavaScript Basic: Exercise-113 with Solution

Write a JavaScript program to calculate the sum of n + n/2 + n/4 + n/8 + .... where n is a positive integer and all divisions are integer.

Pictorial Presentation:

JavaScript: Calculate the sum of n + n/2 + n/4 + n/8 + .....

Sample Solution:

HTML Code:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title> Calculate the sum of n + n/2 + n/4 + n/8 + ....</title>
</head>
<body>

</body>
</html>

JavaScript Code:

function int_sum(num) {
    var s_sum = 0;
    while (num > 0) {
        s_sum += num;
        num = Math.floor(num / 2);
    }
    return s_sum;
}
console.log(int_sum(8))
console.log(int_sum(9))
console.log(int_sum(26))

Sample Output:

15
16
49

Flowchart:

Flowchart: JavaScript - Calculate the sum of n + n/2 + n/4 + n/8 + ....

ES6 Version:

function int_sum(num) {
    let s_sum = 0;
    while (num > 0) {
        s_sum += num;
        num = Math.floor(num / 2);
    }
    return s_sum;
}
console.log(int_sum(8))
console.log(int_sum(9))
console.log(int_sum(26))

Live Demo:

See the Pen javascript-basic-exercise-113 by w3resource (@w3resource) on CodePen.


Contribute your code and comments through Disqus.

Previous: Write a JavaScript program to find the number of trailing zeros in the decimal representation of the factorial of a given number.
Next: Write a JavaScript program to check whether a given string represents a correct sentence or not.

What is the difficulty level of this exercise?



JavaScript: Tips of the Day

Classes/function constructors

class Person {
  constructor() {
    this.name = 'Owen';
  }
}

Person = class AnotherPerson {
  constructor() {
    this.name = 'Eddie';
  }
};

const member = new Person();
console.log(member.name);

We can set classes equal to other classes/function constructors. In this case, we set Person equal to AnotherPerson. The name on this constructor is Eddie, so the name property on the new Person instance member is "Eddie".

Ref: https://bit.ly/3jFRBje