Planta cuadrada
Si un número se puede expresar como el cuadrado de un número entero, se llama cuadrado perfecto. Por ejemplo: 0, 1, 4, 9, 16, 25,...
Hay dos puntos clave en este problema: el primero es encontrar el cuadrado completo de un número de cuatro dígitos; el segundo es determinar el número cuadrado completo. Si los dos primeros dígitos son iguales y si los dos últimos dígitos son iguales.
La primera pregunta es relativamente sencilla. El número de cuatro dígitos oscila entre 1000 y 9999, pero no es necesario comenzar desde 1000 para determinar si es un número cuadrado completo. Para ello, es necesario probar 9.000 números, cada uno para ver si son un cuadrado perfecto, lo que requiere muchos cálculos. De hecho, sólo necesitas comenzar desde 32 hasta 99 y elevarlos al cuadrado uno por uno para obtener el cuadrado completo de los cuatro dígitos. Debido a que el cuadrado de 31 es un número de tres dígitos y el cuadrado de 100 es un número de cinco dígitos, solo necesitas encontrar los cuadrados del 32 al 99 uno por uno.
El segundo problema se puede resolver inteligentemente en lenguaje C utilizando el operador resto y las reglas de división de variables enteras. Por ejemplo, comparando 1234 arriba, podemos dividir 1234 en dos segmentos de la siguiente manera: int? a = 1234/100; b = 1234 100; debido a que la división de enteros en lenguaje C ignora automáticamente la parte decimal, ¿int? El resultado de a=1234/100 es A = 12; el operador restante obtiene el resto, entonces ¿int? B = 1234100 significa el resto de 1234 dividido por 100, y el resultado es b = 34. De esta manera, 1234 se divide con éxito en 12 y 34, y luego es suficiente para determinar si los dígitos A y B son iguales. las decenas respectivamente. El método de juicio es el siguiente: si (a/10 == a10), porque a/10 obtendrá el dígito de las decenas de A y a10 obtendrá el dígito de las unidades de A, siempre que estos dos sean iguales, significa el dígito de las unidades de A. Lo mismo que el dígito de las decenas, por lo que el código específico para la pregunta anterior es el siguiente.
Código de programa
¿#Contiene? ltiostream gt? //Archivo de encabezado de operación de consola
int? Main()//Función principal
{int? Yo, a, b;? //Variable entera
Printf("Un cuadrado perfecto de cuatro dígitos con los mismos dos primeros dígitos y los mismos dos últimos dígitos es:
for(I = 32; Ilt100; I )//Detecta cuadrados perfectos de cuatro dígitos uno por uno a través de un bucle.
{ a =(I * I)/100; //Obtiene los dos primeros dígitos del número cuadrado completo
b =(I * I) 100; cuadrado completo Los dos últimos dígitos del número
if(a/10 = = a 10 amp; ampB/10==b10)//Si los dos primeros dígitos y los dos últimos dígitos son iguales,
printf("d(dsquared)",i*i,I);}// Genera el cuadrado completo de este número de cuatro dígitos.
printf("\n"); //Nueva línea
Sistema("pausa");? //Pausa la pantalla para ver los resultados de la visualización.
¿Volver? 0;}?//Finalizar programa
Resultados de la ejecución
El programa anterior se ejecutó en DEVC y el resultado fue que solo 7744 cumplieron con los requisitos, que es el cuadrado de 88. Las capturas de pantalla específicas son las siguientes: