Maison  >  Article  >  développement back-end  >  Comment convertir des nombres entiers en chiffres romains en PHP ? (exemple de code)

Comment convertir des nombres entiers en chiffres romains en PHP ? (exemple de code)

青灯夜游
青灯夜游original
2019-03-16 17:25:323313parcourir

Comment convertir un nombre entier en chiffres romains ? L'article suivant vous montrera comment utiliser PHP pour convertir des nombres entiers en chiffres romains. J'espère qu'il vous sera utile.

Comment convertir des nombres entiers en chiffres romains en PHP ? (exemple de code)

Méthode 1 : Fonction personnalisée

Nous pouvons écrire manuellement une fonction nous-mêmes pour réaliser cette fonction, cette fonction peut prendre un nombre comme premier argument, le convertir en romain et le renvoyer.

Remarque : la plupart des algorithmes ne fonctionnent que dans la plage de 1 à 4999, le script échouera si des nombres extrêmement grands sont utilisés.

Code d'implémentation :

<?php
header("content-type:text/html;charset=utf-8");
//将数字转换为罗马表示形式
function numberToRoman($num)  
{ 
    // Be sure to convert the given parameter into an integer
    $n = intval($num);
    $result = &#39;&#39;; 
 
    // Declare a lookup array that we will use to traverse the number: 
    $lookup = array(
        &#39;M&#39; => 1000, &#39;CM&#39; => 900, &#39;D&#39; => 500, &#39;CD&#39; => 400, 
        &#39;C&#39; => 100, &#39;XC&#39; => 90, &#39;L&#39; => 50, &#39;XL&#39; => 40, 
        &#39;X&#39; => 10, &#39;IX&#39; => 9, &#39;V&#39; => 5, &#39;IV&#39; => 4, &#39;I&#39; => 1
    ); 
 
    foreach ($lookup as $roman => $value)  
    {
        // Look for number of matches
        $matches = intval($n / $value); 
 
        // Concatenate characters
        $result .= str_repeat($roman, $matches); 
 
        // Substract that from the number 
        $n = $n % $value; 
    } 
    return $result; 
} 
echo &#39;整数数字转换为罗马数字:<br><br>&#39;;
// VIII
echo &#39;数字8:&#39;.numberToRoman(8).&#39;<br>&#39;;
// CXXIII
echo &#39;数字123:&#39;.numberToRoman(123).&#39;<br>&#39;;
// MMCCCLV
echo &#39;数字2355:&#39;.numberToRoman(2355).&#39;<br>&#39;;
// MMMMCMXCIX
echo &#39;数字4999:&#39;.numberToRoman(4999).&#39;<br>&#39;;
?>

Sortie :

Comment convertir des nombres entiers en chiffres romains en PHP ? (exemple de code)

Méthode 2 : Utiliser la bibliothèque Romans

La bibliothèque Romans est une bibliothèque de chiffres romains PHP très simple qui vous permet de convertir des entiers en leur représentation romaine et vice versa.

Remarque : si vous n'avez pas cette bibliothèque, vous devez d'abord l'installer ; après avoir installé la bibliothèque Romans, vous pouvez utiliser son espace de noms et utiliser des fonctions qui peuvent aider à convertir les nombres.

La bibliothèque Romans contient une paire de filtres simples pour convertir une chaîne avec des chiffres romains en un entier représentant l'entrée sous forme décimale, et convertir un entier décimal en une chaîne avec des chiffres romains comme résultat.

1. Convertir des entiers en chiffres romains

Pour convertir des entiers en représentation romaine, vous devez utiliser la classe IntToRoman, créer une instance et appeler la méthode de filtrage à partir de celle-ci. . Cette méthode prend un nombre comme premier paramètre et renvoie une chaîne avec des chiffres romains :

<?php
use Romans\Filter\IntToRoman;

$filter = new IntToRoman();
$result = $filter->filter(1999);
echo $result;
?>

Sortie :

MCMXCIX

2. Convertissez les chiffres romains en entiers

Pour convertir des chiffres romains en représentation entière, vous devez utiliser la classe RomanToInt, créer une instance et appeler la méthode de filtrage à partir de celle-ci. Cette méthode prend une chaîne avec des chiffres romains comme premier paramètre et renvoie un entier avec une valeur numérique :

<?php
use Romans\Filter\RomanToInt;

$filter = new RomanToInt();
$result = $filter->filter(&#39;MCMXCIX&#39;);
echo $result;
?>

Sortie :

1999

Recommandations du didacticiel vidéo associé : " Tutoriel PHP

Ce qui précède est l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'apprentissage de chacun. Pour un contenu plus passionnant, vous pouvez prêter attention aux colonnes de didacticiels pertinentes du site Web PHP chinois ! ! !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn