Open In App

Compute average of two numbers without overflow

Last Updated : 18 Apr, 2024
Comments
Improve
Suggest changes
9 Likes
Like
Report

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:

C++
Java Python C# JavaScript

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:

C++
Java Python JavaScript

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.



Next Article
Article Tags :
Practice Tags :

Similar Reads