Algoritmo clássico da linguagem C exemplo 4: julgando o número de palíndromos

insira a descrição da imagem aqui

1. Descrição do problema

Julgando o número de palíndromos
A descrição do problema
é mostrada nos seguintes pontos

  1. "Palíndromo" refere-se a uma frase que pode ser lida tanto para a frente quanto para trás. É um método retórico e um jogo de palavras que existiam na China antiga e moderna e no exterior, como "Eu sou para todos e todos são para mim" e breve.
  2. Na matemática, também existe uma classe de números que possuem tais características, chamados de números palíndromos.
  3. Suponha que n seja um número natural arbitrário, se o número natural n1 obtido pela disposição reversa dos dígitos de n for igual a n, então n é chamado de número palindrômico.
  4. Por exemplo, se n=1234321, então n é chamado de número palindrômico; mas se n=1234567, então n não é um número palindrômico.
  5. Um número palindrômico é o mesmo número olhando para frente e para trás.
  6. Determine se a representação d-base de um inteiro positivo n é um palíndromo.

Perceber:

  1. Um número par de números também tem um número palíndromo 124421
  2. Decimais sem números palíndromos

Dentre eles, o número de palíndromos a serem utilizados neste artigo é mostrado na função a seguir.

  • Um número palindrômico é o mesmo número olhando para frente e para trás.
  • Determine se a representação d-base de um inteiro positivo n é um palíndromo.

2. Ambiente de compilação de exemplo de algoritmo

O ambiente de compilação do exemplo de algoritmo clássico da linguagem C neste artigo usa o ambiente de desenvolvimento integrado: Visual Studio 2019
insira a descrição da imagem aqui

O link para o site oficial do Visual Studio 2019 é o seguinte

Link do site oficial do Visual Studio 2019
insira a descrição da imagem aqui

Os recursos do ambiente de desenvolvimento integrado do Visual Studio 2019 são

    1. O Visual Studio 2019 instala o serviço de colaboração de código Live Share por padrão.
    1. Nova janela de boas-vindas para ajudar os usuários a escrever código rapidamente, funcionalidade de pesquisa aprimorada, melhorias gerais de desempenho.
    1. Ajuda do Visual Studio IntelliCode AI.
    1. Melhor virtualização Python e suporte Conda.
    1. E suporte para projetos .NET Core 3.0, incluindo WinForms e WPF, etc.

3. O processo de implementação do exemplo de algoritmo

3.1, incluindo o arquivo de cabeçalho

Inclua o código do arquivo de cabeçalho da seguinte maneira

#pragma once

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

  • Inclua os arquivos de cabeçalho da linguagem C a serem usados.

3.2. Declare o array e inicialize-o

Declare a matriz e inicialize o código da seguinte maneira

int num[] = {
    
     232,27,851, 12321};			// 定义输入数字变量的数组。
int scale[] = {
    
     2,10,16 };					// 定义输入进制变量的数组。
  • Define um número de matriz de variáveis ​​numéricas de entrada.
  • Define a escala da matriz da variável base de entrada.

3.3. Declarar variáveis ​​relacionadas

O código para declarar variáveis ​​relacionadas é o seguinte

	int i, j;           // 声明相关的变量
  • Declare as variáveis ​​relevantes i, j;

3.4. Declarar função

O código da função de declaração é o seguinte

/// <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);

  • Pode-se julgar se o número n é um número palíndromo inserido na base d.
  • d significa base, se d = 10, o número n é decimal.
  • Retorna 1 se o número n for um número palíndromo na base d.

insira a descrição da imagem aqui

3.5. Definição de função

O código de definição da função é o seguinte

/// <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 a declaração da função para realizar a função específica da função.
  • Determine se o número n é um número palíndromo inserido na base d.
  • d significa base, se d = 10, o número n é decimal.
  • Retorna 1 se o número n for um número palíndromo na base d.

3.6 Percorra os números na matriz para julgar se são números palíndromos

O código para percorrer os números na matriz e julgar se são números palíndromos é o seguinte.

	/// <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");
  • Percorra os números na matriz para julgar se são números palíndromos.
  • Saída se os números na matriz são números palíndromos.

Pressione F5 para compilar e os resultados da depuração são os seguintes.

insira a descrição da imagem aqui

4. O código completo do programa de exemplo de algoritmo clássico

O código completo do programa de exemplo de algoritmo clássico é o seguinte

4.1, arquivo main.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);

insira a descrição da imagem aqui

4.2, arquivo main.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;
}

insira a descrição da imagem aqui

V. Resumo

O exemplo de algoritmo clássico da linguagem C neste artigo: encontre os valores máximo e mínimo de um array bidimensional, o objetivo a ser alcançado é o seguinte

  • Um número palindrômico é o mesmo número olhando para frente e para trás.
  • Determine se a representação d-base de um inteiro positivo n é um palíndromo.

insira a descrição da imagem aqui

O artigo termina aqui.
Espero que o exemplo de algoritmo clássico da linguagem C 4 neste artigo: julgando o número do palíndromo.
Ele pode inspirar seu amor pela linguagem C e pelo aprendizado de algoritmos.

  • Seu apoio é meu maior encorajamento.

Acho que você gosta

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