Algoritmo clássico da linguagem C exemplo 4: julgando o número de palíndromos
1. Descrição do problema
Julgando o número de palíndromos
A descrição do problema
é mostrada nos seguintes pontos
- "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.
- Na matemática, também existe uma classe de números que possuem tais características, chamados de números palíndromos.
- 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.
- 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.
- 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.
Perceber:
- Um número par de números também tem um número palíndromo 124421
- 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
O link para o site oficial do Visual Studio 2019 é o seguinte
Link do site oficial do Visual Studio 2019
Os recursos do ambiente de desenvolvimento integrado do Visual Studio 2019 são
-
- O Visual Studio 2019 instala o serviço de colaboração de código Live Share por padrão.
-
- Nova janela de boas-vindas para ajudar os usuários a escrever código rapidamente, funcionalidade de pesquisa aprimorada, melhorias gerais de desempenho.
-
- Ajuda do Visual Studio IntelliCode AI.
-
- Melhor virtualização Python e suporte Conda.
-
- 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.
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.
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);
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;
}
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.
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.