Dado un número entero N , la tarea es verificar si N puede representarse como la suma de potencias de 2 donde todas las potencias son > 0, es decir , 2 0 no pueden contribuir a la suma.
Ejemplos:
Entrada: N = 10
Salida: 1
2 3 + 2 1 = 10
Entrada: N = 9
Salida: 0
Planteamiento: Hay dos casos:
- Cuando N es par, siempre se puede representar como la suma de potencias de 2 cuando potencia > 0 .
- Cuando N es impar, nunca se puede representar como la suma de potencias de 2 si 2 0 no está incluido en la suma.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ implementation of the approach #include <bits/stdc++.h> using namespace std; // Function that return true if n // can be represented as the sum // of powers of 2 without using 2^0 bool isSumOfPowersOfTwo(int n) { if (n % 2 == 1) return false; else return true; } // Driver code int main() { int n = 10; if (isSumOfPowersOfTwo(n)) cout << "Yes"; else cout << "No"; return 0; }
Java
// Java implementation of the approach class GFG { // Function that return true if n // can be represented as the sum // of powers of 2 without using 2^0 static boolean isSumOfPowersOfTwo(int n) { if (n % 2 == 1) return false; else return true; } // Driver code public static void main(String args[]) { int n = 10; if (isSumOfPowersOfTwo(n)) System.out.print("Yes"); else System.out.print("No"); } }
Python3
# Python3 implementation of the approach # Function that return true if n # can be represented as the sum # of powers of 2 without using 2^0 def isSumOfPowersOfTwo(n): if n % 2 == 1: return False else: return True # Driver code n = 10 if isSumOfPowersOfTwo(n): print("Yes") else: print("No") # This code is contributed # by Shrikant13
C#
// C# implementation of the approach using System; class GFG { // Function that return true if n // can be represented as the sum // of powers of 2 without using 2^0 static bool isSumOfPowersOfTwo(int n) { if (n % 2 == 1) return false; else return true; } // Driver code public static void Main() { int n = 10; if (isSumOfPowersOfTwo(n)) Console.WriteLine("Yes"); else Console.WriteLine("No"); } }
PHP
<?php // PHP implementation of the approach // Function that return true if n // can be represented as the sum // of powers of 2 without using 2^0 function isSumOfPowersOfTwo($n) { if ($n % 2 == 1) return false; else return true; } // Driver code $n = 10; if (isSumOfPowersOfTwo($n)) echo("Yes"); else echo("No"); // This code is contributed // by Code_Mech ?>
Javascript
<script> // Javascript implementation of the approach // Function that return true if n // can be represented as the sum // of powers of 2 without using 2^0 function isSumOfPowersOfTwo(n) { if (n % 2 == 1) return false; else return true; } // Driver code var n = 10; if (isSumOfPowersOfTwo(n)) document.write("Yes"); else document.write("No"); // This code is contributed by noob2000. </script>
Producción:
Yes
Complejidad de tiempo: O(1)
Espacio Auxiliar: O(1)