Given an equation of the form:
a + b = c
Out of which any one of the terms
Examples:
Input: 2 + 6 = ? Output: 8 Input: ? + 3 =6 Output: 3
Approach:
Missing numbers can be found simply using the equation
Below is the step by step algorithm:
- Split the string into smaller strings from the position of spaces and store in an array. So that the array will contain:
arr[0] = "a" arr[1] = "+" arr[2] = "b" arr[3] = "=" arr[4] = "c"
- The missing character can occur at position 0 or 2 or 4 in the vector. Find the position of missing character.
- Convert known characters to integers.
- Find missing character using the equation.
Below is the implementation of the above approach:
// C++ program to find the missing number // in the equation a + b = c #include <bits/stdc++.h> using namespace std;
// Function to find the missing number // in the equation a + b = c int findMissing(string str)
{ // Array of string to store individual strings
// after splitting the strings from spaces
string arrStr[5];
// Using stringstream to read a string object
// and split
stringstream ss(str);
int i = 0;
while (ss.good() && i < 5) {
ss >> arrStr[i];
++i;
}
int pos = -1;
// Find position of missing character
if (arrStr[0] == "?" )
pos = 0;
else if (arrStr[2] == "?" )
pos = 2;
else
pos = 4;
if (pos == 0)
{
string b,c;
b = arrStr[2];
c = arrStr[4];
// Using stoi() to convert strings to int
int a = stoi(c) - stoi(b);
return a;
}
else if (pos==2)
{
string a,c;
a = arrStr[0];
c = arrStr[4];
// Using stoi() to convert strings to int
int b = stoi(c) - stoi(a);
return b;
}
else if (pos == 4)
{
string b,a;
a = arrStr[0];
b = arrStr[2];
// Using stoi() to convert strings to int
int c = stoi(a) + stoi(b);
return c;
}
} // Driver code int main()
{ // Equation with missing value
string str = "? + 3 = 7" ;
cout<<findMissing(str);
return 0;
} |
// Java program to find the missing number // in the equation a + b = c import java.util.*;
class GFG{
// Function to find the missing number // in the equation a + b = c static int findMissing(String str)
{ // Array of String to store individual
// strings after splitting the strings
// from spaces
String arrStr[] = str.split( " " );
int pos = - 1 ;
// Find position of missing character
if (arrStr[ 0 ].equals( "?" ))
pos = 0 ;
else if (arrStr[ 2 ].equals( "?" ))
pos = 2 ;
else
pos = 4 ;
if (pos == 0 )
{
String b, c;
b = arrStr[ 2 ];
c = arrStr[ 4 ];
// Using Integer.parseInt() to
// convert strings to int
int a = Integer.parseInt(c) -
Integer.parseInt(b);
return a;
}
else if (pos == 2 )
{
String a, c;
a = arrStr[ 0 ];
c = arrStr[ 4 ];
// Using Integer.parseInt() to
// convert strings to int
int b = Integer.parseInt(c) -
Integer.parseInt(a);
return b;
}
else if (pos == 4 )
{
String b, a;
a = arrStr[ 0 ];
b = arrStr[ 2 ];
// Using Integer.parseInt() to
// convert strings to int
int c = Integer.parseInt(a) +
Integer.parseInt(b);
return c;
}
return 0 ;
} // Driver code public static void main(String []args)
{ // Equation with missing value
String str = "? + 3 = 7" ;
System.out.print(findMissing(str));
} } // This code is contributed by pratham76 |
# Python3 program to find the missing number # in the equation a + b = c # Function to find the missing number # in the equation a + b = c def findMissing(s):
# Array of string to store individual strings
# after splitting the strings from spaces
arrStr = s.split()
# Using stringstream to read a string object
# and split
pos = - 1 ;
# Find position of missing character
if (arrStr[ 0 ] = = "?" ):
pos = 0 ;
elif (arrStr[ 2 ] = = "?" ):
pos = 2 ;
else :
pos = 4 ;
if (pos = = 0 ):
b = arrStr[ 2 ];
c = arrStr[ 4 ];
# Using int() to convert strings to int
a = int (c) - int (b);
return a;
elif (pos = = 2 ):
a = arrStr[ 0 ];
c = arrStr[ 4 ];
# Using int() to convert strings to int
b = int (c) - int (a);
return b;
elif (pos = = 4 ):
a = arrStr[ 0 ];
b = arrStr[ 2 ];
# Using int() to convert strings to int
c = int (a) + int (b);
return c;
# Driver code if __name__ = = '__main__' :
# Equation with missing value
s = "? + 3 = 7" ;
print (findMissing(s))
# This code is contributed by rutvik_56
|
// C# program to find the missing number // in the equation a + b = c using System;
class GFG
{ // Function to find the missing number
// in the equation a + b = c
static int findMissing( string str)
{
// Array of String to store individual
// strings after splitting the strings
// from spaces
string [] arrStr = str.Split( " " );
int pos = -1;
// Find position of missing character
if (arrStr[0].Equals( "?" ))
pos = 0;
else if (arrStr[2].Equals( "?" ))
pos = 2;
else
pos = 4;
if (pos == 0)
{
string b, c;
b = arrStr[2];
c = arrStr[4];
// Using Integer.parseInt() to
// convert strings to int
int a = int .Parse(c) - int .Parse(b);
return a;
}
else if (pos == 2)
{
string a, c;
a = arrStr[0];
c = arrStr[4];
// Using Integer.parseInt() to
// convert strings to int
int b = int .Parse(c) - int .Parse(a);
return b;
}
else if (pos == 4)
{
string b, a;
a = arrStr[0];
b = arrStr[2];
// Using Integer.parseInt() to
// convert strings to int
int c = int .Parse(a) + int .Parse(b);
return c;
}
return 0;
}
// Driver code
public static void Main( string [] args)
{
// Equation with missing value
string str = "? + 3 = 7" ;
Console.WriteLine(findMissing(str));
}
} // This code is contributed by chitranayal. |
<script> // JavaScript program to find the missing number // in the equation a + b = c // Function to find the missing number
// in the equation a + b = c function findMissing(str)
{
// Array of String to store individual
// strings after splitting the strings
// from spaces
let arrStr = str.split( " " );
let pos = -1;
// Find position of missing character
if (arrStr[0]==( "?" ))
pos = 0;
else if (arrStr[2]==( "?" ))
pos = 2;
else
pos = 4;
if (pos == 0)
{
let b, c;
b = arrStr[2];
c = arrStr[4];
// Using Integer.parseInt() to
// convert strings to int
let a = parseInt(c) -
parseInt(b);
return a;
}
else if (pos == 2)
{
let a, c;
a = arrStr[0];
c = arrStr[4];
// Using Integer.parseInt() to
// convert strings to int
let b = parseInt(c) -
parseInt(a);
return b;
}
else if (pos == 4)
{
let b, a;
a = arrStr[0];
b = arrStr[2];
// Using Integer.parseInt() to
// convert strings to int
let c = parseInt(a) +
parseInt(b);
return c;
}
return 0;
}
// Driver code
// Equation with missing value
let str = "? + 3 = 7" ;
document.write(findMissing(str));
// This code is contributed by rag2127 </script> |
Output
4
Complexity Analysis:
- Time Complexity: O(1)
- Auxiliary Space: O(1)