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 相关文章推荐
phpMyAdmin 链接表的附加功能尚未激活问题的解决方法(已测)
Mar 27 PHP
深入PHP数据缓存的使用说明
May 10 PHP
php-cli简介(不会Shell语言一样用Shell)
Jun 03 PHP
PHPMailer发送HTML内容、带附件的邮件实例
Jul 01 PHP
WordPress主题中添加文章列表页页码导航的PHP代码实例
Dec 22 PHP
php面向对象编程self和static的区别
May 08 PHP
php面向对象之反射功能与用法分析
Mar 29 PHP
Laravel框架用户登陆身份验证实现方法详解
Sep 14 PHP
为何说PHP引用是个坑,要慎用
Apr 02 PHP
PHP数组去重的更快实现方式分析
May 09 PHP
php中对象引用和复制实例分析
Aug 14 PHP
PHP数组基本用法与知识点总结
Jun 02 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调用c接口无错版介绍
2014/03/11 PHP
php判断数组中是否存在指定键(key)的方法
2015/03/17 PHP
PHP计算数组中值的和与乘积的方法(array_sum与array_product函数)
2016/04/01 PHP
CodeIgniter常用知识点小结
2016/05/26 PHP
网易JS面试题与Javascript词法作用域说明
2010/11/09 Javascript
Javascript图像处理—虚拟边缘介绍及使用方法
2012/12/27 Javascript
一个html5播放视频的video控件只支持android的默认格式mp4和3gp
2014/05/08 Javascript
网站基于flash实现的Banner图切换效果代码
2014/10/14 Javascript
Nodejs从有门道无门菜鸟起飞必看教程
2016/07/20 NodeJs
js实现简单的手风琴效果
2017/02/27 Javascript
Bootstrap组件之下拉菜单,多级菜单及按钮布局方法实例
2017/05/25 Javascript
vue+jquery+lodash实现滑动时顶部悬浮固定效果
2018/04/28 jQuery
详解通过源码解析Node.js中cluster模块的主要功能实现
2018/05/16 Javascript
[51:10]VP vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
复制粘贴功能的Python程序
2008/04/04 Python
Python3如何解决字符编码问题详解
2017/04/23 Python
python遍历序列enumerate函数浅析
2017/10/17 Python
使用CodeMirror实现Python3在线编辑器的示例代码
2019/01/14 Python
python列表生成器迭代器实例解析
2019/12/19 Python
pytorch 改变tensor尺寸的实现
2020/01/03 Python
Python numpy矩阵处理运算工具用法汇总
2020/07/13 Python
Python实现手绘图效果实例分享
2020/07/22 Python
PyCharm2020.3.2安装超详细教程
2021/02/08 Python
香港化妆品经销商:我的公主
2016/08/05 全球购物
John Varvatos官方网站:设计师男士时装
2017/02/08 全球购物
美体小铺奥地利官方网站:The Body Shop奥地利
2019/04/11 全球购物
工厂会计员职责
2014/02/06 职场文书
自我推荐信范文
2014/05/09 职场文书
保护环境演讲稿
2014/05/10 职场文书
文明家庭先进事迹材料
2014/05/14 职场文书
村级个人对照检查材料
2014/08/22 职场文书
公共艺术专业自荐信
2014/09/01 职场文书
2015年党小组工作总结
2015/05/26 职场文书
JPA如何使用entityManager执行SQL并指定返回类型
2021/06/15 Java/Android
Minikube搭建Kubernetes集群
2022/03/31 Servers
HDFS免重启挂载新磁盘
2022/04/06 Servers