PHP将整数数字转换为罗马数字实例分享


Posted in PHP onMarch 17, 2019

方法一:自定义函数

我们可以自己手动编写一个函数来实现此功能,这个函数可以将数字作为第一个参数,将其转换为罗马并返回。

注:大多数算法只能在1-4999的范围内工作,如果使用特大数,脚本将失败。

实现代码:

<?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 = ''; 

 

 // Declare a lookup array that we will use to traverse the number: 

 $lookup = array(

  'M' => 1000, 'CM' => 900, 'D' => 500, 'CD' => 400, 

  'C' => 100, 'XC' => 90, 'L' => 50, 'XL' => 40, 

  'X' => 10, 'IX' => 9, 'V' => 5, 'IV' => 4, 'I' => 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 '整数数字转换为罗马数字:<br><br>';

// VIII

echo '数字8:'.numberToRoman(8).'<br>';

// CXXIII

echo '数字123:'.numberToRoman(123).'<br>';

// MMCCCLV

echo '数字2355:'.numberToRoman(2355).'<br>';

// MMMMCMXCIX

echo '数字4999:'.numberToRoman(4999).'<br>';

?>

输出:

PHP将整数数字转换为罗马数字实例分享

方法二:使用Romans库

Romans库是一个非常简单的PHP罗马数字库,允许您将整数转换为其罗马表示,反之亦然。

注:如果没有该库,请先需要安装;安装好Romans库后,就能够使用其命名空间并使用可帮助转换数字的函数。

Romans库包含一对简单的过滤器,用于将具有罗马数字的字符串转换为表示输入为十进制的int,将十进制int转换为具有罗马数字作为结果的字符串。

1、整数转换为罗马数字

要将整数转换为罗马表示,需要使用IntToRoman类,创建一个实例并从中调用filter方法。此方法将数字作为第一个参数,并返回带有罗马数字的字符串:

<?php

use Romans\Filter\IntToRoman;

 

$filter = new IntToRoman();

$result = $filter->filter(1999);

echo $result;

?>

输出:

MCMXCIX

2、罗马数字转换为整数

要将罗马数字转换为整数表示,需要使用RomanToInt类,创建一个实例并从中调用filter方法。此方法将使用罗马数字的字符串作为第一个参数,并返回一个带数值的整数:

<?php

use Romans\Filter\RomanToInt;

 

$filter = new RomanToInt();

$result = $filter->filter('MCMXCIX');

echo $result;

?>

输出:

1999

PHP 相关文章推荐
超强分页类2.0发布,支持自定义风格,默认4种显示模式
Jan 02 PHP
phpfans留言版用到的数据操作类和分页类
Jan 04 PHP
php中通过数组进行高效随机抽取指定条记录的算法
Sep 09 PHP
PHP捕获Fatal error错误的方法
Jun 11 PHP
PHP中常用的字符串格式化函数总结
Nov 19 PHP
详解PHP的Yii框架中自带的前端资源包的使用
Mar 31 PHP
PHP Laravel 上传图片、文件等类封装
Aug 16 PHP
PHP微信开发之微信录音临时转永久存储
Jan 26 PHP
PHP实现动态创建XML文档的方法
Mar 30 PHP
PHP获取HTTP body内容的方法
Dec 31 PHP
浅谈PHP无限极分类原理
Mar 14 PHP
详解如何实现Laravel的服务容器的方法示例
Apr 15 PHP
PHP标准库(PHP SPL)详解
Mar 16 #PHP
PHP PDO数据库操作预处理与注意事项
Mar 16 #PHP
php生成word并下载代码实例
Mar 15 #PHP
PHP-FPM的配置与优化讲解
Mar 15 #PHP
php-fpm中max_children的配置
Mar 15 #PHP
使用Zookeeper分布式部署PHP应用程序
Mar 15 #PHP
php根据命令行参数生成配置文件详解
Mar 15 #PHP
You might like
基于php在各种web服务器的运行模式详解
2013/06/03 PHP
Twig模板引擎用法入门教程
2016/01/20 PHP
jQuery jqgrid 对含特殊字符json 数据的 Java 处理方法
2011/01/01 Javascript
Jquery右下角抖动、浮动 实例代码(兼容ie6、FF)
2013/08/15 Javascript
jQuery插件 selectToSelect使用方法
2013/10/02 Javascript
jqgrid 表格数据导出实例
2013/11/21 Javascript
php的文件上传入门教程(实例讲解)
2014/04/10 Javascript
jQuery学习笔记之创建DOM元素
2015/01/19 Javascript
JavaScript中的包装对象介绍
2015/01/27 Javascript
jquery的幻灯片图片切换效果代码分享
2015/09/07 Javascript
Jquery 效果使用详解
2015/11/23 Javascript
jQuery筛选数组之grep、each、inArray、map的用法及遍历json对象
2016/06/20 Javascript
JS实现批量上传文件并显示进度功能
2017/06/27 Javascript
JS按钮闪烁功能的实现代码
2017/07/21 Javascript
解决html-jquery/js引用外部图片时遇到看不了或出现403的问题
2017/09/22 jQuery
JavaScript实现读取与输出XML文件数据的方法示例
2018/06/05 Javascript
vue中利用simplemde实现markdown编辑器(增加图片上传功能)
2019/04/29 Javascript
webpack3.0升级4.0的方法步骤
2020/04/02 Javascript
Jquery ajax书写方法代码实例解析
2020/06/12 jQuery
JS 5种遍历对象的方式
2020/06/16 Javascript
详解Vue的七种传值方式
2021/02/08 Vue.js
[02:22]《新闻直播间》2017年08月14日
2017/08/15 DOTA
Python导出数据到Excel可读取的CSV文件的方法
2015/05/12 Python
python中list常用操作实例详解
2015/06/03 Python
Python常见异常分类与处理方法
2017/06/04 Python
Python设计模式之工厂模式简单示例
2018/01/09 Python
python实现对任意大小图片均匀切割的示例
2018/12/05 Python
python算法题 链表反转详解
2019/07/02 Python
基于python实现数组格式参数加密计算
2020/04/21 Python
大学生毕业鉴定
2014/01/31 职场文书
安全生产管理责任书
2014/04/16 职场文书
2014幼儿园家长工作总结
2014/11/10 职场文书
离婚协议书范文2014(夫妻感情破裂)
2014/12/14 职场文书
几款流行的HTML5 UI框架比较(小结)
2021/04/08 HTML / CSS
浅谈哪个Python库才最适合做数据可视化
2021/06/28 Python
Win11怎么解除儿童账号限制?Win11解除微软儿童账号限制方法
2022/07/07 数码科技