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 相关文章推荐
PHP 数组入门教程小结
May 20 PHP
PHP Memcached应用实现代码
Feb 08 PHP
linux下使用ThinkPHP需要注意大小写导致的问题
Aug 02 PHP
PHP 多维数组的排序问题 根据二维数组中某个项排序
Nov 09 PHP
Yii框架防止sql注入,xss攻击与csrf攻击的方法
Oct 18 PHP
深入了解PHP中的Array数组和foreach
Nov 06 PHP
浅谈php fopen下载远程文件的函数
Nov 18 PHP
magento后台无法登录解决办法的两种方法
Dec 09 PHP
Python中使用django form表单验证的方法
Jan 16 PHP
基于win2003虚拟机中apache服务器的访问
Aug 01 PHP
PHP explode()函数用法讲解
Feb 15 PHP
PHP+redis实现微博的推模型案例分析
Jul 10 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
杏林同学录(九)
2006/10/09 PHP
PHP+DBM的同学录程序(3)
2006/10/09 PHP
PHP+Mysql日期时间如何转换(UNIX时间戳和格式化日期)
2012/07/15 PHP
Yii2 如何在modules中添加验证码的方法
2017/06/19 PHP
浅析PHP中的 inet_pton 网络函数
2019/12/16 PHP
Laravel框架使用技巧之使用url()全局函数返回前一个页面的地址方法详解
2020/04/06 PHP
js验证是否为数字的总结
2013/04/14 Javascript
js如何实现设计模式中的模板方法
2013/07/23 Javascript
node.js中的fs.writeFile方法使用说明
2014/12/14 Javascript
javascript框架设计之框架分类及主要功能
2015/06/23 Javascript
前端分页功能的实现以及原理(jQuery)
2017/01/22 Javascript
使用vue.js实现checkbox的全选和多个的删除功能
2017/02/17 Javascript
H5基于iScroll实现下拉刷新和上拉加载更多
2017/07/18 Javascript
使用JavaScript进行表单校验功能
2017/08/01 Javascript
vue2.0 中使用transition实现动画效果使用心得
2018/08/13 Javascript
node.js 使用 net 模块模拟 websocket 握手进行数据传递操作示例
2020/02/11 Javascript
vue自定义组件(通过Vue.use()来使用)即install的用法说明
2020/08/11 Javascript
python文件的md5加密方法
2016/04/06 Python
一些常用的Python爬虫技巧汇总
2016/09/28 Python
详解python之多进程和进程池(Processing库)
2017/06/09 Python
python如何统计序列中元素
2020/07/31 Python
Python图像处理之图像的缩放、旋转与翻转实现方法示例
2019/01/04 Python
Python单元和文档测试实例详解
2019/04/11 Python
Django框架ORM数据库操作实例详解
2019/11/07 Python
关于Flask项目无法使用公网IP访问的解决方式
2019/11/19 Python
win10系统下python3安装及pip换源和使用教程
2020/01/06 Python
tensorflow如何继续训练之前保存的模型实例
2020/01/21 Python
python实现批量命名照片
2020/06/18 Python
德国消费电子产品购物网站:Guter Kauf
2020/09/15 全球购物
商务专员岗位职责
2013/11/23 职场文书
法人代表委托书
2014/04/04 职场文书
女生抽烟检讨书
2014/10/05 职场文书
2014年干部培训工作总结
2014/12/17 职场文书
《画家和牧童》教学反思
2016/02/17 职场文书
聊聊配置 Nginx 访问与错误日志的问题
2022/05/25 Servers
spring IOC容器的Bean管理XML自动装配过程
2022/05/30 Java/Android