![]() |
VOOZH | about |
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.000000Input: 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:
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:
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.