Dada una string str , la tarea es verificar que la suma de los valores ASCII de todos los caracteres en esta string sea un cubo perfecto o no.
Ejemplos:
Input: str = "ll" Output: Yes ASCII value of l = 108 Therefore, sum of ASCII values = 108 + 108 = 216 which is a perfect cube 6 (6 * 6 * 6 = 216) Input: str = "a" Output: No ASCII value of a = 97 Therefore, sum of ASCII values = 97 which is not a perfect cube
Algoritmo
- Para cada carácter en la string, averigüe su valor ASCII
- Calcular la suma de los valores ASCII de todos los caracteres
- Comprueba si esta suma es un cubo perfecto o no.
- Si la suma es un cubo perfecto, escriba «Sí», de lo contrario, «No»
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program to find if string is a // perfect cube or not. #include <bits/stdc++.h> using namespace std; bool isPerfectCubeString(string str) { int sum = 0; // Finding ASCII values of each // character and finding its sum for (int i = 0; i < str.length(); i++) sum += (int)str[i]; // Find the cube root of sum long double cr = round(cbrt(sum)); // Check if sum is a perfect cube return (cr * cr * cr == sum); } // Driver code int main() { string str = "ll"; if (isPerfectCubeString(str)) cout << "Yes"; else cout << "No"; }
Java
// Java program to find if String is a // perfect cube or not. import java.util.*; class GFG{ static boolean isPerfectCubeString(String str) { int sum = 0; // Finding ASCII values of each // character and finding its sum for (int i = 0; i < str.length(); i++) sum += (int)str.charAt(i); // Find the cube root of sum double cr = Math.round(Math.cbrt(sum)); // Check if sum is a perfect cube return (cr * cr * cr == sum); } // Driver code public static void main(String[] args) { String str = "ll"; if (isPerfectCubeString(str)) System.out.print("Yes"); else System.out.print("No"); } } // This code is contributed by 29AjayKumar
Python3
# Python3 program to find if string is a # perfect cube or not. from math import ceil def isPerfectCubeString(str1): sum = 0 # Finding ASCII values of each # character and finding its sum for i in range(len(str1)): sum += ord(str1[i]) # Find the cube root of sum cr = ceil((sum)**(1/3)) # Check if sum is a perfect cube return (cr * cr * cr == sum) # Driver code str1 = "ll" if (isPerfectCubeString(str1)): print("Yes") else: print("No") # This code is contributed by mohit kumar 29
C#
// C# program to find if String is a // perfect cube or not. using System; class GFG{ static bool isPerfectCubeString(String str) { int sum = 0; // Finding ASCII values of each // character and finding its sum for (int i = 0; i < str.Length; i++) sum += (int)str[i]; // Find the cube root of sum double cr = Math.Round(Math.Pow(sum, (double) 1 / 3)); // Check if sum is a perfect cube return (cr * cr * cr == sum); } // Driver code public static void Main(String[] args) { String str = "ll"; if (isPerfectCubeString(str)) Console.Write("Yes"); else Console.Write("No"); } } // This code is contributed by PrinciRaj1992
Javascript
<script> // JavaScript program to find if string // is a perfect cube or not. function isPerfectCubeString(str) { var sum = 0; // Finding ASCII values of each // character and finding its sum for(var i = 0; i < str.length; i++) { sum += str.charCodeAt(i); } // Find the cube root of sum var cr = Math.round(Math.cbrt(sum)); // Check if sum is a perfect cube return cr * cr * cr == sum; } // Driver code var str = "ll"; if (isPerfectCubeString(str)) document.write("Yes"); else document.write("No"); // This code is contributed by rdtank </script>
Producción:
Yes