Dado un número entero N mayor que 2, la tarea es imprimir cualquier combinación de a, b y c tal que:
- un + segundo + c = norte
- a, b y c no son divisibles por 3.
Ejemplos:
Input: N = 233 Output: 77 77 79 Input: N = 3 Output: 1 1 1
Un enfoque ingenuo es usar tres bucles y verificar la condición dada.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program to print a, b and c // such that a+b+c=N #include <bits/stdc++.h> using namespace std; // Function to print a, b and c void printCombination(int n) { // first loop for (int i = 1; i < n; i++) { // check for 1st number if (i % 3 != 0) { // second loop for (int j = 1; j < n; j++) { // check for 2nd number if (j % 3 != 0) { // third loop for (int k = 1; k < n; k++) { // Check for 3rd number if (k % 3 != 0 && (i + j + k) == n) { cout << i << " " << j << " " << k; return; } } } } } } } // Driver Code int main() { int n = 233; printCombination(n); return 0; }
Java
// Java program to print a, // b and c such that a+b+c=N import java.io.*; class GFG { // Function to print a, b and c static void printCombination(int n) { // first loop for (int i = 1; i < n; i++) { // check for 1st number if (i % 3 != 0) { // second loop for (int j = 1; j < n; j++) { // check for 2nd number if (j % 3 != 0) { // third loop for (int k = 1; k < n; k++) { // Check for 3rd number if (k % 3 != 0 && (i + j + k) == n) { System.out.println( i + " " + j + " " + k); return; } } } } } } } // Driver Code public static void main (String[] args) { int n = 233; printCombination(n); } } // This code is contributed // by anuj_67.
Python3
# Python3 program to print a, b # and c such that a+b+c=N # Function to print a, b and c def printCombination(n): # first loop for i in range(1, n): # check for 1st number if (i % 3 != 0): # second loop for j in range(1, n): # check for 2nd number if (j % 3 != 0): # third loop for k in range(1, n): # Check for 3rd number if (k % 3 != 0 and (i + j + k) == n): print(i, j, k); return; # Driver Code n = 233; printCombination(n); # This code is contributed # by mits
C#
// C# program to print a, // b and c such that a+b+c=N class GFG { // Function to print a, b and c static void printCombination(int n) { // first loop for (int i = 1; i < n; i++) { // check for 1st number if (i % 3 != 0) { // second loop for (int j = 1; j < n; j++) { // check for 2nd number if (j % 3 != 0) { // third loop for (int k = 1; k < n; k++) { // Check for 3rd number if (k % 3 != 0 && (i + j + k) == n) { System.Console.WriteLine(i + " " + j + " " + k); return; } } } } } } } // Driver Code static void Main () { int n = 233; printCombination(n); } } // This code is contributed // by mits
PHP
<?php // PHP program to print a, b and c // such that a+b+c=N // Function to print a, b and c function printCombination($n) { // first loop for ($i = 1; $i < $n; $i++) { // check for 1st number if ($i % 3 != 0) { // second loop for ($j = 1; $j < $n; $j++) { // check for 2nd number if ($j % 3 != 0) { // third loop for ($k = 1; $k < $n; $k++) { // Check for 3rd number if ($k % 3 != 0 && ($i + $j + $k) == $n) { echo $i , " " , $j , " " , $k; return; } } } } } } } // Driver Code $n = 233; printCombination($n); // This code is contributed // inder_verma ?>
Javascript
<script> // Javascript program to print a, b and c // such that a+b+c=N // Function to print a, b and c function printCombination(n) { // first loop for (let i = 1; i < n; i++) { // check for 1st number if (i % 3 != 0) { // second loop for (let j = 1; j < n; j++) { // check for 2nd number if (j % 3 != 0) { // third loop for (let k = 1; k < n; k++) { // Check for 3rd number if (k % 3 != 0 && (i + j + k) == n) { document.write(i + " " + j + " " + k); return; } } } } } } } // Driver Code let n = 233; printCombination(n); // This code is contributed by rishavmahato348. </script>
Producción:
1 2 230
Complejidad de tiempo : O(N 3 ), ya que estamos usando un bucle para atravesar N 3 veces.
Espacio auxiliar : O(1), ya que no estamos utilizando ningún espacio adicional.
Enfoque eficiente:
- Considere el 1 como uno de los tres números.
- Los otros dos números serán:
- (2, n-3) si n-2 es divisible por 3.
- De lo contrario (1, n-2) si n-2 no es divisible por 3.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program to print a, b and c // such that a+b+c=N #include <bits/stdc++.h> using namespace std; // Function to print a, b and c void printCombination(int n) { cout << 1 << " "; // check if n-2 is divisible // by 3 or not if ((n - 2) % 3 == 0) cout << 2 << " " << n - 3; else cout << 1 << " " << n - 2; } // Driver Code int main() { int n = 233; printCombination(n); return 0; }
Java
// Java program to print a, b // and c such that a+b+c=N class GFG { // Function to print a, b and c static void printCombination(int n) { System.out.print(1 + " "); // check if n-2 is divisible // by 3 or not if ((n - 2) % 3 == 0) System.out.print(2 + " " + (n - 3)); else System.out.print(1 + " " + (n - 2)); } // Driver Code public static void main(String[] args) { int n = 233; printCombination(n); } } // This code is contributed by mits
Python3
# Python3 program to print a, b and c # such that a+b+c=N # Function to print a, b and c def printCombination(n): print("1 ",end=""); # check if n-2 is divisible # by 3 or not if ((n - 2) % 3 == 0): print("2",n - 3,end=""); else: print("1",(n - 2),end=""); # Driver code if __name__=='__main__': n = 233; printCombination(n); # This code is contributed by mits
C#
// C# program to print a, b // and c such that a+b+c=N class GFG { // Function to print a, b and c static void printCombination(int n) { System.Console.Write(1 + " "); // check if n-2 is divisible // by 3 or not if ((n - 2) % 3 == 0) System.Console.Write(2 + " " + (n - 3)); else System.Console.Write(1 + " " + (n - 2)); } // Driver Code static void Main() { int n = 233; printCombination(n); } } // This code is contributed by mits
PHP
<?php // PHP program to print a, b and c // such that a+b+c=N // Function to print a, b and c function printCombination($n) { echo "1 "; // check if n-2 is divisible // by 3 or not if (($n - 2) % 3 == 0) echo "2 " . ($n - 3); else echo "1 " . ($n - 2); } // Driver code $n = 233; printCombination($n); // This code is contributed by mits ?>
Javascript
<script> // Javascript program to print a, b and c // such that a+b+c=N // Function to print a, b and c function printCombination(n) { document.write(1 + " "); // Check if n-2 is divisible // by 3 or not if ((n - 2) % 3 == 0) document.write(2 + " " + (n - 3)); else document.write(1 + " " + (n - 2)); } // Driver Code let n = 233; printCombination(n); // This code is contributed by subhammahato348 </script>
Producción:
1 2 230
Complejidad de tiempo : O (1), ya que no estamos usando ningún bucle o recursión para atravesar.
Espacio auxiliar : O(1), ya que no estamos utilizando ningún espacio adicional.