Algoritmo clásico en lenguaje C ejemplo 4: juzgar el número de palíndromos

inserte la descripción de la imagen aquí

1. Descripción del problema

Juzgando el número de palíndromos
La descripción del problema
se muestra en los siguientes puntos

  1. "Palíndrome" se refiere a una oración que se puede leer hacia adelante y hacia atrás. Es un método retórico y un juego de palabras que ha existido en la China antigua y moderna y en el extranjero, como "Yo soy para todos, y todos son para mí" y pronto.
  2. En matemáticas, también existe una clase de números que tienen tales características, llamados números palíndromos.
  3. Supongamos que n es un número natural arbitrario, si el número natural n1 obtenido al ordenar inversamente los dígitos de n es igual a n, entonces n se llama número palindrómico.
  4. Por ejemplo, si n=1234321, n se llama número palindrómico, pero si n=1234567, n no es un número palindrómico.
  5. Un número palindrómico es el mismo número mirando hacia adelante y hacia atrás.
  6. Determine si la representación en base d de un entero positivo n es un palíndromo.

Aviso:

  1. Un número par de números también tiene un número palindrómico 124421
  2. Decimales sin números palindrómicos

Entre ellos, el número de palíndromos a utilizar en este artículo se muestra en la siguiente función.

  • Un número palindrómico es el mismo número mirando hacia adelante y hacia atrás.
  • Determine si la representación en base d de un entero positivo n es un palíndromo.

2. Entorno de compilación de ejemplo de algoritmo

El entorno de compilación del ejemplo de algoritmo clásico del lenguaje C en este artículo utiliza el entorno de desarrollo integrado: Visual Studio 2019
inserte la descripción de la imagen aquí

El enlace al sitio web oficial de Visual Studio 2019 es el siguiente

Enlace al sitio web oficial de Visual Studio 2019
inserte la descripción de la imagen aquí

Las características del entorno de desarrollo integrado de Visual Studio 2019 son

    1. Visual Studio 2019 instala el servicio de colaboración de código Live Share de forma predeterminada.
    1. Nueva ventana de bienvenida para ayudar a los usuarios a escribir código rápidamente, funcionalidad de búsqueda mejorada, mejoras de rendimiento general.
    1. Ayuda de Visual Studio IntelliCode AI.
    1. Mejor virtualización de Python y compatibilidad con Conda.
    1. Y soporte para proyectos .NET Core 3.0, incluidos WinForms y WPF, etc.

3. El proceso de implementación del ejemplo del algoritmo.

3.1, incluido el archivo de cabecera

Incluya el código del archivo de encabezado de la siguiente manera

#pragma once

// 包含头文件
#include <stdio.h>
#include <stdlib.h>

  • Incluya los archivos de encabezado del lenguaje C que se utilizarán.

3.2 Declarar el arreglo e inicializarlo

Declare la matriz e inicialice el código de la siguiente manera

int num[] = {
    
     232,27,851, 12321};			// 定义输入数字变量的数组。
int scale[] = {
    
     2,10,16 };					// 定义输入进制变量的数组。
  • Define un número de matriz de variables numéricas de entrada.
  • Define la escala de matriz de la variable base de entrada.

3.3 Declarar variables relacionadas

El código para declarar variables relacionadas es el siguiente

	int i, j;           // 声明相关的变量
  • Declarar las variables relevantes i, j;

3.4 Función de declaración

El código de la función de declaración es el siguiente

/// <summary>
/// 判断数字n是否是输入d进制的回文数
/// </summary>
/// <param name="n">数字n</param>
/// <param name="d">d代表进制, 若d = 10 , 则数字n是十进制</param>
/// <returns>如果数字n是d进制的回文数, 则返回1</returns>
int circle(int n, int d);

  • Se puede juzgar si el número n es un número palíndromo ingresado en base d.
  • d representa la base, si d = 10, el número n es decimal.
  • Devuelve 1 si el número n es un número palindrómico en base d.

inserte la descripción de la imagen aquí

3.5 Definición de funciones

El código de definición de la función es el siguiente

/// <summary>
/// 判断数字n是否是输入d进制的回文数
/// </summary>
/// <param name="n">数字n</param>
/// <param name="d">d代表进制, 若d = 10 , 则数字n是十进制</param>
/// <returns>如果数字n是d进制的回文数, 则返回1</returns>
int circle(int n, int d)
{
    
    
    int s = 0, m = n;

    while (m)
    {
    
    
        s = s * d + m % d;
        m /= d;
    }

    return s == n;
}
  • Defina la declaración de la función para realizar la función específica de la función.
  • Determine si el número n es un número palíndromo ingresado en base d.
  • d representa la base, si d = 10, el número n es decimal.
  • Devuelve 1 si el número n es un número palindrómico en base d.

3.6 Recorra los números en la matriz para juzgar si son números palíndromos

El código para atravesar los números en la matriz y juzgar si son números palíndromos es el siguiente.

	/// <summary>
    /// 遍历数组中的数字, 进行是否是回文数的判断
    /// </summary>
    /// <returns>无</returns>
    for (i = 0; i < sizeof(num) / sizeof(num[0]); i++)
    {
    
    
        for (j = 0; j < sizeof(scale) / sizeof(scale[0]); j++)
        {
    
    
            if (circle(num[i], scale[j]))       // 调用circle函数, 对数组中的存储的数字进行回文数的判断。
            {
    
    
                printf("%d --> (%d) 进制是回文数\n", num[i], scale[j]);
            }
            else
            {
    
    
                printf("%d --> (%d) 进制不是回文数\n", num[i], scale[j]);
            }
        }
        printf("\n");
    }
    printf("\n");
  • Recorra los números en la matriz para juzgar si son números palíndromos.
  • Muestra si los números en la matriz son números palíndromo.

Presione F5 para compilar y los resultados de la depuración son los siguientes.

inserte la descripción de la imagen aquí

4. El código completo del programa de ejemplo de algoritmo clásico.

El código completo del programa de ejemplo del algoritmo clásico es el siguiente

4.1, archivo principal.h

#pragma once

// 包含头文件
#include <stdio.h>
#include <stdlib.h>

int num[] = {
    
     232,27,851, 12321};			// 定义输入数字变量的数组。
int scale[] = {
    
     2,10,16 };					// 定义输入进制变量的数组。

/// <summary>
/// 判断数字n是否是输入d进制的回文数
/// </summary>
/// <param name="n">数字n</param>
/// <param name="d">d代表进制, 若d = 10 , 则数字n是十进制</param>
/// <returns>如果数字n是d进制的回文数, 则返回1</returns>
int circle(int n, int d);

inserte la descripción de la imagen aquí

4.2, archivo principal.c

#define _CRT_SECURE_NO_WARNINGS

#include "Main.h"


/// <summary>
/// 主函数
/// </summary>
/// <returns>返回0</returns>
int main()
{
    
    
    system("color 3E");

    
    int i, j;           // 声明相关的变量

    /// <summary>
    /// 遍历数组中的数字, 进行是否是回文数的判断
    /// </summary>
    /// <returns>无</returns>
    for (i = 0; i < sizeof(num) / sizeof(num[0]); i++)
    {
    
    
        for (j = 0; j < sizeof(scale) / sizeof(scale[0]); j++)
        {
    
    
            if (circle(num[i], scale[j]))       // 调用circle函数, 对数组中的存储的数字进行回文数的判断。
            {
    
    
                printf("%d --> (%d) 进制是回文数\n", num[i], scale[j]);
            }
            else
            {
    
    
                printf("%d --> (%d) 进制不是回文数\n", num[i], scale[j]);
            }
        }
        printf("\n");
    }
    printf("\n");

    system("pause");
    return 0;
}

/// <summary>
/// 判断数字n是否是输入d进制的回文数
/// </summary>
/// <param name="n">数字n</param>
/// <param name="d">d代表进制, 若d = 10 , 则数字n是十进制</param>
/// <returns>如果数字n是d进制的回文数, 则返回1</returns>
int circle(int n, int d)
{
    
    
    int s = 0, m = n;

    while (m)
    {
    
    
        s = s * d + m % d;
        m /= d;
    }

    return s == n;
}

inserte la descripción de la imagen aquí

V. Resumen

El ejemplo de algoritmo clásico del lenguaje C en este artículo: encuentre los valores máximos y mínimos de una matriz bidimensional, el objetivo a lograr es el siguiente

  • Un número palindrómico es el mismo número mirando hacia adelante y hacia atrás.
  • Determine si la representación en base d de un entero positivo n es un palíndromo.

inserte la descripción de la imagen aquí

El artículo termina aquí.
Espero que el ejemplo 4 del algoritmo clásico del lenguaje C en este artículo: juzgar el número de palíndromo.
Puede inspirar su amor por el lenguaje C y el aprendizaje de algoritmos.

  • Su apoyo es mi mayor aliento.

Supongo que te gusta

Origin blog.csdn.net/m0_47419053/article/details/126764924
Recomendado
Clasificación