Open In App

Find n-variables from n sum equations with one missing

Improve
Improve
Like Article
Like
Save
Share
Report

You are given an array a[] of n values as a[1], a[2]…a[n] which are part of n-equations in n-variables where equations are as: 
Eqn1 => X2 + X3 +…..+Xn = a1 
Eqn2 => X1 + X3 +…..+Xn = a2 
Eqni => X1 + X2 +…+Xi-1 + Xi+1..+Xn = ai 
Eqnn => X1 + X2 +…..+Xn-1 = an
As you have n-equations in n-variables find the value of all variables(X1, X2…Xn).

Examples :  

Input : a[] = {4, 4, 4, 4, 4}
Output : X1 = 1
         X2 = 1
         X3 = 1
         X4 = 1
         X5 = 1

Input : a[] = {2, 5, 6, 4, 8}
Output : X1 = 4.25
         X2 = 1.25
         X3 = 0.25
         X4 = 2.25
         X5 = -1.75

Approach

Let, X1+X2+X3+….Xn= SUM 
Using value SUM we have our equations as  

SUM - X1 = a1 -----(1)
SUM - X2 = a2  -----(2)
SUM - Xi = ai  -----(i)
SUM - Xn = an -------(n)
---------------------------------------------------------------
Now, if we add all these equation we will have an equation as :
n*SUM -(X1+X2+...Xn) = a1 + a2 + ...an
n*SUM - SUM = a1 + a2 + ...an
SUM = (a1+a2+...an)/(n-1)

Calculate SUM from above equation.
putting value of SUM in (i), (ii).... we have
X1 = SUM - a1
X2 = SUM - a2

Solution :  

X1 = SUM - a1
X2 = SUM - a2
Xi = SUM - ai
Xn = SUM - an

Implementation:

C++




// CPP program to find n-variables
#include <bits/stdc++.h>
using namespace std;
 
// function to print n-variable values
void findVar(int a[], int n)
{   
    // calculate value of array SUM
    float SUM = 0;
    for (int i = 0; i < n; i++)
        SUM += a[i];
 
    // Every variable contributes n-1
    // times to sum. So dividing by
    // n-1 to get sum of all.
    SUM /= (n - 1);
 
    // print the values of n-variables
    for (int i = 0; i < n; i++)
        cout << "X" << (i + 1)
             << " = " << SUM - a[i] << endl;
}
 
// driver program
int main()
{
    int a[] = { 2, 5, 6, 4, 8 };
    int n = sizeof(a) / sizeof(a[0]);
    findVar(a, n);
    return 0;
}


Java




// Java program to
// find n-variables
import java.io.*;
 
class GFG
{
    // function to print
    // n-variable values
    static void findVar(int []a,
                        int n)
    {
        // calculate value+
        // of array SUM
        float SUM = 0;
        for (int i = 0; i < n; i++)
            SUM += a[i];
     
        // Every variable contributes
        // n-1 times to sum. So dividing
        // by n-1 to get sum of all.
        SUM /= (n - 1);
     
        // print the values
        // of n-variables
        for (int i = 0; i < n; i++)
            System.out.print("X" + (i + 1) +
                             " = " + (SUM -
                             a[i]) + "\n");
    }
     
    // Driver Code
    public static void main(String args[])
    {
        int []a = new int[]{2, 5, 6, 4, 8};
        int n = a.length;
        findVar(a, n);
    }
}
 
// This code is contributed by
// Manish Shaw(manishshaw1)


Python3




# Python3 program to
# find n-variables
 
# function to print
# n-variable values
def findVar(a, n):
     
    # calculate value of
    # array SUM
    SUM = 0;
    for i in range(n):
        SUM += a[i];
 
    # Every variable contributes
    # n-1 times to sum. So 
    # dividing by n-1 to get sum
    # of all.
    SUM = SUM / (n - 1);
 
    # print the values
    # of n-variables
    for i in range(n):
        print("X" , (i + 1),
              " = ", SUM - a[i]);
 
# Driver Code
a = [2, 5, 6, 4, 8];
n = len(a);
findVar(a, n);
     
# This code is contributed
# by mits


C#




// C# program to find n-variables
using System;
using System.Linq;
using System.Collections.Generic;
 
class GFG
{
    // function to print
    // n-variable values
    static void findVar(int []a,
                        int n)
    {
        // calculate value+
        // of array SUM
        float SUM = 0;
        for (int i = 0; i < n; i++)
            SUM += a[i];
     
        // Every variable contributes
        // n-1 times to sum. So dividing
        // by n-1 to get sum of all.
        SUM /= (n - 1);
     
        // print the values
        // of n-variables
        for (int i = 0; i < n; i++)
            Console.Write("X" + (i + 1) +
                   " = " + (SUM - a[i]) + "\n");
    }
     
    // Driver Code
    static void Main()
    {
        int []a = { 2, 5, 6, 4, 8 };
        int n = a.Length;
        findVar(a, n);
    }
}
 
// This code is contributed by
// Manish Shaw(manishshaw1)


PHP




<?php
// PHP program to
// find n-variables
 
// function to print
// n-variable values
function findVar($a, $n)
{
     
    // calculate value of
    // array SUM
    $SUM = 0;
    for ($i = 0; $i < $n; $i++)
        $SUM += $a[$i];
 
    // Every variable contributes n-1
    // times to sum. So dividing by
    // n-1 to get sum of all.
    $SUM /= ($n - 1);
 
    // print the values
    // of n-variables
    for ( $i = 0; $i < $n; $i++)
        echo "\nX" , ($i + 1)
            , " = " , $SUM - $a[$i];
}
 
    // Driver Code
    $a = array(2, 5, 6, 4, 8);
    $n = count($a);
    findVar($a, $n);
     
// This code is contributed by anuj_67.
?>


Javascript




<script>
 
// function to print
// n-variable values
function findVar(a,n)
{
 
    // calculate value+
    // of array SUM
    let SUM = 0;
    for (let i = 0; i < n; i++)
        SUM += a[i];
 
    // Every variable contributes
    // n-1 times to sum. So dividing
    // by n-1 to get sum of all.
    SUM /= (n - 1);
 
    // print the values
    // of n-variables
    for (let i = 0; i < n; i++)
        document.write("X" + (i + 1) + " = " + (SUM - a[i]) + "<br>");
}
     
 
let a = [2, 5, 6, 4, 8 ];
let n = a.length;
findVar(a, n);
 
// This code is contributed by mohit kumar 29.
 
</script>


Output

X1 = 4.25
X2 = 1.25
X3 = 0.25
X4 = 2.25
X5 = -1.75

Complexity Analysis:

  • Time Complexity : O(n) 
  • Auxiliary Space : O(1) 


Last Updated : 17 Aug, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads