VOOZH about

URL: https://www.geeksforgeeks.org/dsa/compute-average-two-numbers-without-overflow/

⇱ Compute average of two numbers without overflow - GeeksforGeeks


  • Courses
  • Tutorials
  • Interview Prep

Compute average of two numbers without overflow

Last Updated : 18 Apr, 2024

Given two numbers A and B, such that 0 <= A <= B <= (231 - 1). Compute the average ((A + B) / 2) of the two numbers.

Examples:

Input: A = 1000000000, B = 2000000000
Output: 1500000000.000000
Explanation: (A + B)/2 = (1000000000+ 2000000000)/2 = 1500000000.000000

Input: A = 2000000000, B = 2000000001
Output: 2000000000.500000
Explanation: (A + B)/2 = (2000000000 + 2000000001)/2 = 2000000000.500000

Approach: To solve the problem, follow the below idea:

We know that average of two numbers A and B = (A + B) / 2 but if we try to compute the sum of A and B, it will lead to an overflow. So, we need to apply a different formula to compute the average. Since average of A and B is half of the sum of A and B. We can also compute average as (A/2) + (B/2).

Below is the implementation of the approach:


Output
Average: 2000000000.500000

Time Complexity: O(1), the code will run in a constant time.
Auxiliary Space: O(1), no extra space is required, so it is a constant.

Approach 2:

We can also calculate the average of two numbers A and B using the formula: A + (B - A)/2.

Below is the implementation of the approach:


Output
Average : 2000000000.500000

Time Complexity: O(1), the code will run in a constant time.
Auxiliary Space: O(1), no extra space is required, so it is a constant.

Comment
Article Tags: