Dados tres colores, como R , G y B , convierta estos colores RGB en un código de color hexadecimal . Si la conversión no es posible, imprima -1.
Ejemplos:
Entrada: R = 0, G = 0, B = 0
Salida: #000000Entrada: R = 255, G = 255, B = 256
Salida: -1
Explicación:
Un código de color 256 no es posible ya que solo el rango 0-255 está disponible para un color.
Acercarse:
- Primero, verifique si cada uno de los colores dados está en el rango 0-255 o no.
- De lo contrario, imprima -1 y salga del programa, ya que en este caso no es posible la conversión.
- Si están dentro del rango, entonces, para cada color, convierta el código de color dado en su número hexadecimal equivalente .
- Si el valor hexadecimal es de 1 dígito, agregue 0 a la izquierda para que sea de 2 dígitos.
- Luego, en la respuesta final, agregue ‘#’ al principio, seguido de los valores hexadecimales de R, G y B respectivamente.
A continuación se muestra la implementación del enfoque anterior.
C++
// C++ code to convert the given RGB // color code to Hex color code #include <iostream> using namespace std; // function to convert decimal to hexadecimal string decToHexa(int n) { // char array to store hexadecimal number char hexaDeciNum[2]; // counter for hexadecimal number array int i = 0; while (n != 0) { // temporary variable to store remainder int temp = 0; // storing remainder in temp variable. temp = n % 16; // check if temp < 10 if (temp < 10) { hexaDeciNum[i] = temp + 48; i++; } else { hexaDeciNum[i] = temp + 55; i++; } n = n / 16; } string hexCode = ""; if (i == 2) { hexCode.push_back(hexaDeciNum[0]); hexCode.push_back(hexaDeciNum[1]); } else if (i == 1) { hexCode = "0"; hexCode.push_back(hexaDeciNum[0]); } else if (i == 0) hexCode = "00"; // Return the equivalent // hexadecimal color code return hexCode; } // Function to convert the // RGB code to Hex color code string convertRGBtoHex(int R, int G, int B) { if ((R >= 0 && R <= 255) && (G >= 0 && G <= 255) && (B >= 0 && B <= 255)) { string hexCode = "#"; hexCode += decToHexa(R); hexCode += decToHexa(G); hexCode += decToHexa(B); return hexCode; } // The hex color code doesn't exist else return "-1"; } // Driver program to test above function int main() { int R = 0, G = 0, B = 0; cout << convertRGBtoHex(R, G, B) << endl; R = 255, G = 255, B = 255; cout << convertRGBtoHex(R, G, B) << endl; R = 25, G = 56, B = 123; cout << convertRGBtoHex(R, G, B) << endl; R = 2, G = 3, B = 4; cout << convertRGBtoHex(R, G, B) << endl; R = 255, G = 255, B = 256; cout << convertRGBtoHex(R, G, B) << endl; return 0; }
Java
// Java code to convert the given RGB // color code to Hex color code import java.util.*; class GFG{ // function to convert decimal to hexadecimal static String decToHexa(int n) { // char array to store hexadecimal number char []hexaDeciNum = new char[2]; // counter for hexadecimal number array int i = 0; while (n != 0) { // temporary variable to store remainder int temp = 0; // storing remainder in temp variable. temp = n % 16; // check if temp < 10 if (temp < 10) { hexaDeciNum[i] = (char) (temp + 48); i++; } else { hexaDeciNum[i] = (char) (temp + 55); i++; } n = n / 16; } String hexCode = ""; if (i == 2) { hexCode+=hexaDeciNum[0]; hexCode+=hexaDeciNum[1]; } else if (i == 1) { hexCode = "0"; hexCode+=hexaDeciNum[0]; } else if (i == 0) hexCode = "00"; // Return the equivalent // hexadecimal color code return hexCode; } // Function to convert the // RGB code to Hex color code static String convertRGBtoHex(int R, int G, int B) { if ((R >= 0 && R <= 255) && (G >= 0 && G <= 255) && (B >= 0 && B <= 255)) { String hexCode = "#"; hexCode += decToHexa(R); hexCode += decToHexa(G); hexCode += decToHexa(B); return hexCode; } // The hex color code doesn't exist else return "-1"; } // Driver program to test above function public static void main(String[] args) { int R = 0, G = 0, B = 0; System.out.print(convertRGBtoHex(R, G, B) +"\n"); R = 255; G = 255; B = 255; System.out.print(convertRGBtoHex(R, G, B) +"\n"); R = 25; G = 56; B = 123; System.out.print(convertRGBtoHex(R, G, B) +"\n"); R = 2; G = 3; B = 4; System.out.print(convertRGBtoHex(R, G, B) +"\n"); R = 255; G = 255; B = 256; System.out.print(convertRGBtoHex(R, G, B) +"\n"); } } // This code is contributed by 29AjayKumar
Python3
# Python3 program to convert the given # RGB color code to Hex color code # Function to convert decimal to hexadecimal def decToHexa(n): # char array to store hexadecimal number hexaDeciNum = ['0'] * 100 # Counter for hexadecimal number array i = 0 while (n != 0): # Temporary variable to store remainder temp = 0 # Storing remainder in temp variable. temp = n % 16 # Check if temp < 10 if (temp < 10): hexaDeciNum[i] = chr(temp + 48) i = i + 1 else: hexaDeciNum[i] = chr(temp + 55) i = i + 1 n = int(n / 16) hexCode = "" if (i == 2): hexCode = hexCode + hexaDeciNum[0] hexCode = hexCode + hexaDeciNum[1] elif (i == 1): hexCode = "0" hexCode = hexCode + hexaDeciNum[0] elif (i == 0): hexCode = "00" # Return the equivalent # hexadecimal color code return hexCode # Function to convert the # RGB code to Hex color code def convertRGBtoHex(R, G, B): if ((R >= 0 and R <= 255) and (G >= 0 and G <= 255) and (B >= 0 and B <= 255)): hexCode = "#"; hexCode = hexCode + decToHexa(R) hexCode = hexCode + decToHexa(G) hexCode = hexCode + decToHexa(B) return hexCode # The hex color code doesn't exist else: return "-1" # Driver Code R = 0 G = 0 B = 0 print (convertRGBtoHex(R, G, B)) R = 255 G = 255 B = 255 print (convertRGBtoHex(R, G, B)) R = 25 G = 56 B = 123 print (convertRGBtoHex(R, G, B)) R = 2 G = 3 B = 4 print (convertRGBtoHex(R, G, B)) R = 255 G = 255 B = 256 print (convertRGBtoHex(R, G, B)) # This code is contributed by Pratik Basu
C#
// C# code to convert the given RGB // color code to Hex color code using System; class GFG{ // Function to convert decimal // to hexadecimal static string decToHexa(int n) { // char array to store // hexadecimal number char []hexaDeciNum = new char[2]; // Counter for hexadecimal // number array int i = 0; while (n != 0) { // Temporary variable to // store remainder int temp = 0; // Storing remainder in // temp variable. temp = n % 16; // Check if temp < 10 if (temp < 10) { hexaDeciNum[i] = (char) (temp + 48); i++; } else { hexaDeciNum[i] = (char) (temp + 55); i++; } n = n / 16; } string hexCode = ""; if (i == 2) { hexCode += hexaDeciNum[0]; hexCode += hexaDeciNum[1]; } else if (i == 1) { hexCode = "0"; hexCode += hexaDeciNum[0]; } else if (i == 0) hexCode = "00"; // Return the equivalent // hexadecimal color code return hexCode; } // Function to convert the // RGB code to Hex color code static string convertRGBtoHex(int R, int G, int B) { if ((R >= 0 && R <= 255) && (G >= 0 && G <= 255) && (B >= 0 && B <= 255)) { string hexCode = "#"; hexCode += decToHexa(R); hexCode += decToHexa(G); hexCode += decToHexa(B); return hexCode; } // The hex color code doesn't exist else return "-1"; } // Driver code public static void Main(string[] args) { int R = 0, G = 0, B = 0; Console.Write(convertRGBtoHex(R, G, B) + "\n"); R = 255; G = 255; B = 255; Console.Write(convertRGBtoHex(R, G, B) + "\n"); R = 25; G = 56; B = 123; Console.Write(convertRGBtoHex(R, G, B) + "\n"); R = 2; G = 3; B = 4; Console.Write(convertRGBtoHex(R, G, B) + "\n"); R = 255; G = 255; B = 256; Console.Write(convertRGBtoHex(R, G, B) + "\n"); } } // This code is contributed by rutvik_56
Javascript
<script> // Javascript code to convert the given RGB // color code to Hex color code // function to convert decimal to hexadecimal function decToHexa(n) { // char array to store hexadecimal number let hexaDeciNum = Array.from({length: 2}, (_, i) => 0); // counter for hexadecimal number array let i = 0; while (n != 0) { // temporary variable to store remainder let temp = 0; // storing remainder in temp variable. temp = n % 16; // check if temp < 10 if (temp < 10) { hexaDeciNum[i] = String.fromCharCode(temp + 48); i++; } else { hexaDeciNum[i] = String.fromCharCode(temp + 55); i++; } n = Math.floor(n / 16); } let hexCode = ""; if (i == 2) { hexCode+=hexaDeciNum[0]; hexCode+=hexaDeciNum[1]; } else if (i == 1) { hexCode = "0"; hexCode+=hexaDeciNum[0]; } else if (i == 0) hexCode = "00"; // Return the equivalent // hexadecimal color code return hexCode; } // Function to convert the // RGB code to Hex color code function convertRGBtoHex(R, G, B) { if ((R >= 0 && R <= 255) && (G >= 0 && G <= 255) && (B >= 0 && B <= 255)) { let hexCode = "#"; hexCode += decToHexa(R); hexCode += decToHexa(G); hexCode += decToHexa(B); return hexCode; } // The hex color code doesn't exist else return "-1"; } // Driver Code let R = 0, G = 0, B = 0; document.write(convertRGBtoHex(R, G, B) +"<br/>"); R = 255; G = 255; B = 255; document.write(convertRGBtoHex(R, G, B) +"<br/>"); R = 25; G = 56; B = 123; document.write(convertRGBtoHex(R, G, B) +"<br/>"); R = 2; G = 3; B = 4; document.write(convertRGBtoHex(R, G, B) +"<br/>"); R = 255; G = 255; B = 256; document.write(convertRGBtoHex(R, G, B) +"<br/>"); </script>
Producción:
#000000 #FFFFFF #9183B7 #020304 -1
Complejidad de tiempo: O (log 16 N)
Espacio Auxiliar: O(1)