Find n-variables from n sum equations with one missing - GeeksforGeeks

29 Apr, 2021
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 = anAs 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
 
C++
Java
Python3
C#
PHP
Javascript
// CPP program to find n-variables#include <bits/stdc++.h>using namespace std; // function to print n-variable valuesvoid 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 programint main(){    int a[] = { 2, 5, 6, 4, 8 };    int n = sizeof(a) / sizeof(a[0]);    findVar(a, n);    return 0;}
// Java program to// find n-variablesimport 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 program to# find n-variables # function to print# n-variable valuesdef 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 Codea = [2, 5, 6, 4, 8];n = len(a);findVar(a, n);     # This code is contributed# by mits
// C# program to find n-variablesusing 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 program to// find n-variables // function to print// n-variable valuesfunction 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.?>
<script> // function to print// n-variable valuesfunction 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>
X1 = 4.25
X2 = 1.25
X3 = 0.25
X4 = 2.25
X5 = -1.75
 
Time Complexity : O(n) Auxiliary Space : O(1) 
vt_m
manishshaw1
Mithun Kumar
mohit kumar 29
Algebra
Arrays
Mathematical
Arrays
Mathematical
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Comments
Old Comments
Next Greater Element
Window Sliding Technique
Count pairs with given sum
Program to find sum of elements in a given array
Reversal algorithm for array rotation
Program for Fibonacci numbers
C++ Data Types
Write a program to print all permutations of a given string
Set in C++ Standard Template Library (STL)
Coin Change | DP-7