Skip to content
Related Articles

Related Articles

Improve Article

Find the missing digit x from the given expression

  • Difficulty Level : Easy
  • Last Updated : 17 Sep, 2020
Geek Week

Given an alphanumeric string, consisting of a single alphabet X, which represents an expression of the form:

A operator B = C
where A, B and C denotes integers and the operator can be either of +, -, * or /

The task is to evaluate the missing digit X present in any of the integers A, B and C such that the given expression holds to be valid.

Examples:

Input: S = “3x + 12 = 46”
Output: 4
Explanation:
If we subtract 12 from 46, we will get 34.
So, on comparing 3x and 34. the value of x = 4



Input: S = “4 – 2 = x”
Output: 2
Explanation:
After solving the equation, the value of x = 2.

Approach: Follow the steps below to solve the problem:

  • Split the string to extract the two operands, operator and the resultant.
  • Check if X is present in the resultant or not. If so, then compute the value of the resultant by applying operations on the first operand and second operand with the operator.
  • Otherwise, if X is not present in the resultant. Then check if X is present in the first operand. If so, then apply the operation on the second operand and resultant with the operator.
  • Otherwise, if X is not present in the first operand also. Then check if X is present in the second operand. If so, then apply the operation on the first operand and resultant with the operator.

Below is the implementation of the above approach:

Python3




# Python3 program to find missing
# digit x in expression
  
  
def MissingDigit(exp):
    
    # Split the expression to
    # extract operands, operator
    # and resultant
    exp = list(exp.split())
  
    first_operand = exp[0]
    operator = exp[1]
    second_operand = exp[2]
    resultant = exp[-1]
  
    # If x is present in resultant
    if 'x' in resultant:
        x = resultant
        first_operand = int(first_operand)
        second_operand = int(second_operand)
  
        if operator == '+':
            res = first_operand + second_operand
        elif operator == '-':
            res = first_operand - second_operand
        elif operator == '*':
            res = first_operand * second_operand
        else:
            res = first_operand // second_operand
  
     # If x in present in operands
    else:
  
        resultant = int(resultant)
  
        # If x in the first operand
        if 'x' in first_operand:
  
            x = first_operand
            second_operand = int(second_operand)
  
            if operator == '+':
                res = resultant - second_operand
            elif operator == '-':
                res = resultant + second_operand
            elif operator == '*':
                res = resultant // second_operand
            else:
                res = resultant * second_operand
  
        # If x is in the second operand
        else:
  
            x = second_operand
            first_operand = int(first_operand)
  
            if operator == '+':
                res = resultant-first_operand
            elif operator == '-':
                res = first_operand - resultant
            elif operator == '*':
                res = resultant // first_operand
            else:
                res = first_operand // resultant
  
    res = str(res)
    k = 0
    for i in x:
        if i == 'x':
            result = res[k]
            break
        else:
            k = k + 1
  
    return result
  
  
# Driver Code
if __name__ == '__main__':
    # input expression
    exp = "3x + 12 = 46"
  
    print(MissingDigit(exp))
Output:
4

Time Complexity: O(L), where is the length of the equation.
Auxiliary Space: O(1)

Attention reader! All those who say programming isn’t for kids, just haven’t met the right mentors yet. Join the  Demo Class for First Step to Coding Coursespecifically designed for students of class 8 to 12. 

The students will get to learn more about the world of programming in these free classes which will definitely help them in making a wise career choice in the future.




My Personal Notes arrow_drop_up
Recommended Articles
Page :