Algorithme classique du langage C, exemple 4 : évaluer le nombre de palindromes
1. Description du problème
Jugement du nombre de palindrome
La description du problème
est illustrée dans les points suivants
- « Palindrome » fait référence à une phrase qui peut être lue à l'envers et à l'envers. C'est une méthode rhétorique et un jeu de mots qui ont existé dans la Chine ancienne et moderne et à l'étranger, comme « Je suis pour tout le monde, et tout le monde est pour moi » et bientôt.
- En mathématiques, il existe également une telle classe de nombres qui ont de telles caractéristiques, appelées nombres palindromes.
- Supposons que n soit un nombre naturel arbitraire, si le nombre naturel n1 obtenu en inversant les chiffres de n est égal à n, alors n est appelé un nombre palindromique.
- Par exemple, si n=1234321, alors n est appelé un nombre palindromique ; mais si n=1234567, alors n n'est pas un nombre palindromique.
- Un nombre palindromique est le même nombre regardant vers l'avant et vers l'arrière.
- Déterminez si la représentation en base d d'un entier positif n est un palindrome.
Avis:
- Un nombre pair de nombres a aussi un nombre palindromique 124421
- Décimales sans nombres palindromiques
Parmi eux, le nombre de palindromes à utiliser dans cet article est indiqué dans la fonction suivante.
- Un nombre palindromique est le même nombre regardant vers l'avant et vers l'arrière.
- Déterminez si la représentation en base d d'un entier positif n est un palindrome.
2. Environnement de compilation d'exemple d'algorithme
L'environnement de compilation de l'exemple d'algorithme classique du langage C dans cet article utilise l'environnement de développement intégré : Visual Studio 2019
Le lien vers le site officiel de Visual Studio 2019 est le suivant
Lien du site officiel de Visual Studio 2019
Les fonctionnalités de l'environnement de développement intégré Visual Studio 2019 sont
-
- Visual Studio 2019 installe par défaut le service de collaboration de code Live Share.
-
- Nouvelle fenêtre de bienvenue pour aider les utilisateurs à écrire du code rapidement, fonctionnalité de recherche améliorée, améliorations des performances générales.
-
- Aide Visual Studio IntelliCode AI.
-
- Meilleure virtualisation Python et prise en charge de Conda.
-
- Et prise en charge des projets .NET Core 3.0, y compris WinForms et WPF, etc.
3. Le processus de mise en œuvre de l'exemple d'algorithme
3.1, y compris le fichier d'en-tête
Incluez le code du fichier d'en-tête comme suit
#pragma once
// 包含头文件
#include <stdio.h>
#include <stdlib.h>
- Incluez les fichiers d'en-tête du langage C à utiliser.
3.2 Déclarer le tableau et l'initialiser
Déclarez le tableau et initialisez le code comme suit
int num[] = {
232,27,851, 12321}; // 定义输入数字变量的数组。
int scale[] = {
2,10,16 }; // 定义输入进制变量的数组。
- Définit un tableau num de variables numériques d'entrée.
- Définit l'échelle du tableau de la variable de base d'entrée.
3.3. Déclarer des variables liées
Le code pour déclarer les variables liées est le suivant
int i, j; // 声明相关的变量
- Déclarez les variables pertinentes i, j ;
3.4 Déclarer la fonction
Le code de la fonction de déclaration est le suivant
/// <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);
- On peut juger si le nombre n est un nombre palindrome entré en base d.
- d signifie base, si d = 10, le nombre n est décimal.
- Renvoie 1 si le nombre n est un nombre palindromique en base d.
3.5. Définition de la fonction
Le code de définition de la fonction est le suivant
/// <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;
}
- Définissez la déclaration de la fonction pour réaliser la fonction spécifique de la fonction.
- Déterminer si le nombre n est un nombre palindrome entré en base d.
- d signifie base, si d = 10, le nombre n est décimal.
- Renvoie 1 si le nombre n est un nombre palindromique en base d.
3.6. Parcourez les nombres du tableau pour déterminer s'il s'agit de nombres palindromes
Le code pour parcourir les nombres dans le tableau et juger s'il s'agit de nombres palindromes est le suivant.
/// <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");
- Parcourez les nombres du tableau pour déterminer s'il s'agit de nombres palindromes.
- Afficher si les nombres du tableau sont des nombres palindromes.
Appuyez sur F5 pour compiler et les résultats du débogage sont les suivants.
4. Le code complet du programme d'exemple d'algorithme classique
Le code complet du programme d'exemple d'algorithme classique est le suivant
4.1, fichier 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, fichier 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. Résumé
L'exemple d'algorithme classique du langage C dans cet article : trouver les valeurs maximum et minimum d'un tableau à deux dimensions, le but à atteindre est le suivant
- Un nombre palindromique est le même nombre regardant vers l'avant et vers l'arrière.
- Déterminez si la représentation en base d d'un entier positif n est un palindrome.
L'article se termine ici.
J'espère que l'exemple d'algorithme classique du langage C 4 dans cet article: juger le nombre de palindrome.
Cela peut inspirer votre amour pour le langage C et l'apprentissage des algorithmes.
- Votre soutien est mon plus grand encouragement.