Dado un número entero N , la tarea es crear una string a partir de él repitiendo el número de modo que la longitud de la string resultante sea igual a la suma de los dígitos del número original.
Por ejemplo: si el número es 61 y la suma de los dígitos es 6 + 1 = 7 , la string generada después de repetir 61 tendrá una longitud de 7 , es decir , 6161616 .
Ejemplos:
Entrada: N = 10101
Salida: Sí La
longitud de la string viene dada por la suma de los dígitos, es decir, 1 + 0 + 1 + 0 + 1 = 3.
Entonces, la string resultante es «101», que es un palíndromo.
Entrada: N = 123
Salida: No La
longitud de la string será 1 + 2 3 = 6.
Entonces, la string resultante es «123123», que no es un palíndromo.
Acercarse:
- Encuentre la suma de los dígitos de N y repita el número hasta que la longitud de la string sea igual a esta suma.
- Ahora comprueba si la string resultante es un palíndromo o no.
- Si es un palíndromo, imprima Sí .
- De lo contrario , imprima No.
A continuación se muestra la implementación del enfoque anterior:
C++
// CPP implementation of the approach #include<bits/stdc++.h> using namespace std; // Function that returns true if str is a palindrome bool isPalindrome(string str) { int len = str.length(); for (int i = 0; i < len / 2; i++) { if (str[i] != str[len - 1 - i]) return false; } return true; } // Function that returns true if the // generated string is a palindrome bool createStringAndCheckPalindrome(int N) { // sub contains N as a string ostringstream out; out << N; string result = out.str(); string sub = "" + result, res_str = ""; int sum = 0; // Calculate the sum of the digits while (N > 0) { int digit = N % 10; sum += digit; N = N / 10; } // Repeat the substring until the length // of the resultant string < sum while (res_str.length() < sum) res_str += sub; // If length of the resultant string exceeded sum // then take substring from 0 to sum - 1 if (res_str.length() > sum) res_str = res_str.substr(0, sum); // If the generated string is a palindrome if (isPalindrome(res_str)) return true; return false; } // Driver code int main() { int N = 10101; if (createStringAndCheckPalindrome(N)) cout << ("Yes"); else cout << ("No"); } // This code is contributed by // Shashank_Sharma
Java
// Java implementation of the approach class GFG { // Function that returns true if str is a palindrome static boolean isPalindrome(String str) { int len = str.length(); for (int i = 0; i < len / 2; i++) { if (str.charAt(i) != str.charAt(len - 1 - i)) return false; } return true; } // Function that returns true if the // generated string is a palindrome static boolean createStringAndCheckPalindrome(int N) { // sub contains N as a string String sub = "" + N, res_str = ""; int sum = 0; // Calculate the sum of the digits while (N > 0) { int digit = N % 10; sum += digit; N = N / 10; } // Repeat the substring until the length // of the resultant string < sum while (res_str.length() < sum) res_str += sub; // If length of the resultant string exceeded sum // then take substring from 0 to sum - 1 if (res_str.length() > sum) res_str = res_str.substring(0, sum); // If the generated string is a palindrome if (isPalindrome(res_str)) return true; return false; } // Driver code public static void main(String args[]) { int N = 10101; if (createStringAndCheckPalindrome(N)) System.out.println("Yes"); else System.out.println("No"); } }
Python 3
# Python 3 implementation of the approach # Function that returns true if # str is a palindrome def isPalindrome(s): l = len(s) for i in range(l // 2): if (s[i] != s[l - 1 - i]): return False return True # Function that returns true if the # generated string is a palindrome def createStringAndCheckPalindrome(N): # sub contains N as a string sub = "" + chr(N) res_str = "" sum = 0 # Calculate the sum of the digits while (N > 0) : digit = N % 10 sum += digit N = N // 10 # Repeat the substring until the length # of the resultant string < sum while (len(res_str) < sum): res_str += sub # If length of the resultant string exceeded # sum then take substring from 0 to sum - 1 if (len(res_str) > sum): res_str = res_str[0: sum] # If the generated string is a palindrome if (isPalindrome(res_str)): return True return False # Driver code if __name__ == "__main__": N = 10101 if (createStringAndCheckPalindrome(N)): print("Yes") else: print("No") # This code is contributed by ita_c
C#
// C# implementation of the approach using System ; class GFG { // Function that returns true if str is a palindrome static bool isPalindrome(string str) { int len = str.Length; for (int i = 0; i < len / 2; i++) { if (str[i] != str[len - 1 - i]) return false; } return true; } // Function that returns true if the // generated string is a palindrome static bool createStringAndCheckPalindrome(int N) { // sub contains N as a string string sub = "" + N, res_str = ""; int sum = 0; // Calculate the sum of the digits while (N > 0) { int digit = N % 10; sum += digit; N = N / 10; } // Repeat the substring until the length // of the resultant string < sum while (res_str.Length< sum) res_str += sub; // If length of the resultant string exceeded sum // then take substring from 0 to sum - 1 if (res_str.Length > sum) res_str = res_str.Substring(0, sum); // If the generated string is a palindrome if (isPalindrome(res_str)) return true; return false; } // Driver code public static void Main() { int N = 10101; if (createStringAndCheckPalindrome(N)) Console.WriteLine("Yes"); else Console.WriteLine("No"); } // This code is contributed by Ryuga }
Javascript
<script> // JavaScript implementation of the approach // Function that returns true // if str is a palindrome function isPalindrome(str) { let len = str.length; for (let i = 0; i < len / 2; i++) { if (str[i] != str[len - 1 - i]) return false; } return true; } // Function that returns true if the // generated string is a palindrome function createStringAndCheckPalindrome(N) { // sub contains N as a string let sub = "" + N, res_str = ""; let sum = 0; // Calculate the sum of the digits while (N > 0) { let digit = N % 10; sum += digit; N = N / 10; } // Repeat the substring until the length // of the resultant string < sum while (res_str.length < sum) res_str += sub; // If length of the resultant string exceeded sum // then take substring from 0 to sum - 1 if (res_str.length > sum) res_str = res_str.substring(0, sum); // If the generated string is a palindrome if (isPalindrome(res_str)) return true; return false; } // Driver code let N = 10101; if (createStringAndCheckPalindrome(N)) document.write("Yes"); else document.write("No"); // This code is contributed by avanitrachhadiya2155 </script>
Yes
Publicación traducida automáticamente
Artículo escrito por rachana soma y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA