Skip to content
Related Articles

Related Articles

Find the missing digit x from the given expression

Improve Article
Save Article
Like Article
  • Difficulty Level : Easy
  • Last Updated : 06 May, 2022

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))

Javascript




<script>
 
// JavaScript program to find missing
// digit x in expression
 
let res = 0,x;
let result = "";
 
function MissingDigit(exp){
   
    // Split the expression to
    // extract operands, operator
    // and resultant
    exp = exp.split(' ')
 
    let first_operand = exp[0]
    let operator = exp[1]
    let second_operand = exp[2]
    let resultant = exp[exp.length-1]
 
    // If x is present in resultant
    if(resultant.indexOf('x') != -1){
        x = resultant
        first_operand = parseInt(first_operand)
        second_operand = parseInt(second_operand)
 
        if(operator == '+')
            res = first_operand + second_operand
        else if(operator == '-')
            res = first_operand - second_operand
        else if(operator == '*')
            res = first_operand * second_operand
        else
            res = Math.floor(first_operand / second_operand)
    }
 
     // If x in present in operands
    else{
 
        resultant = parseInt(resultant)
 
        // If x in the first operand
        if(first_operand.indexOf('x') != -1){
 
            x = first_operand
            second_operand = parseInt(second_operand)
 
            if(operator == '+')
                res = resultant - second_operand
            else if(operator == '-')
                res = resultant + second_operand
            else if(operator == '*')
                res = Math.floor(resultant / second_operand)
            else
                res = resultant * second_operand
        }
 
        // If x is in the second operand
        else{
 
            let x = second_operand
            first_operand = parseInt(first_operand)
 
            if(operator == '+')
                res = resultant-first_operand
            else if(operator == '-')
                res = first_operand - resultant
            else if(operator == '*')
                res = Math.floor(resultant / first_operand)
            else
                res = Math.floor(first_operand / resultant)
        }
    }
 
    res = res.toString()
    let k = 0
    for(let i of x){
        if(i == 'x'){
            result = res[k]
            break
        }
        else
            k = k + 1
    }
 
    return result
}
 
 
// Driver Code
 
// input expression
let exp = "3x + 12 = 46"
 
document.write(MissingDigit(exp))
     
// This code is contributed by shinjanpatra
 
</script>
Output:
4

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


My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!