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 相关文章推荐
ftp类(example.php)
Oct 09 PHP
php与XML、XSLT、Mysql的结合运用实现代码
Nov 19 PHP
PHP 创建标签云函数代码
May 26 PHP
PHP与MySQL开发的8个技巧小结
Dec 17 PHP
通过PHP修改Linux或Unix口令的方法分享
Jan 30 PHP
php抓取页面的几种方法详解
Jun 17 PHP
深入解析fsockopen与pfsockopen的区别
Jul 05 PHP
PHP遍历并打印指定目录下所有文件实例
Feb 10 PHP
Yii2增加验证码步骤详解
Apr 25 PHP
验证token、回复图文\文本、推送消息的实用微信类php代码
Jun 28 PHP
php实现页面纯静态的实例代码
Jun 21 PHP
Laravel实现定时任务的示例代码
Aug 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
短波问题解答
2021/02/28 无线电
ThinkPHP中的系统常量和预定义常量集合
2014/07/01 PHP
PHP7引入的&quot;??&quot;和&quot;?:&quot;的区别讲解
2019/04/08 PHP
使用composer命令加载vendor中的第三方类库 的方法
2019/07/09 PHP
PHP实现爬虫爬取图片代码实例
2021/03/03 PHP
AJAX架构之Dojo篇
2007/04/10 Javascript
JavaScript伸缩的菜单简单示例
2013/12/03 Javascript
运行Node.js的IIS扩展iisnode安装配置笔记
2015/03/02 Javascript
js实现图片漂浮效果的方法
2015/03/02 Javascript
原生javascript实现分享到朋友圈功能 支持ios和android
2016/05/11 Javascript
AngularJS实践之使用ng-repeat中$index的注意点
2016/12/22 Javascript
angular中实现控制器之间传递参数的方式
2017/04/24 Javascript
JavaScript实现快速排序的方法分析
2018/01/10 Javascript
vue中简单弹框dialog的实现方法
2018/02/26 Javascript
使用vue-infinite-scroll实现无限滚动效果
2018/06/22 Javascript
详解vue2.0监听属性的使用心得及搭配计算属性的使用
2018/07/18 Javascript
通过实例解析js简易模块加载器
2019/06/17 Javascript
解决Vue在Tomcat8下部署页面不加载的问题
2019/11/12 Javascript
Vue实现购物车实例代码两则
2020/05/30 Javascript
vue vant中picker组件的使用
2020/11/03 Javascript
[49:18]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 OG vs TNC
2018/04/01 DOTA
pyqt4教程之实现windows窗口小示例分享
2014/03/07 Python
Python开发虚拟环境使用virtualenvwrapper的搭建步骤教程图解
2018/09/19 Python
Python选择网卡发包及接收数据包
2019/04/04 Python
在python中创建指定大小的多维数组方式
2019/11/28 Python
IDLE下Python文件编辑和运行操作
2020/04/25 Python
利用Bootstrap实现漂亮简洁的CSS3价格表实例源码
2017/03/02 HTML / CSS
办公室助理岗位职责
2013/12/25 职场文书
消防器材管理制度
2014/01/28 职场文书
教师对学生的寄语
2014/04/03 职场文书
三年级学生评语
2014/04/23 职场文书
篮球社团活动总结
2014/06/27 职场文书
vue.js Router中嵌套路由的实用示例
2021/06/27 Vue.js
Python3的进程和线程你了解吗
2022/03/16 Python
Vue.Draggable实现交换位置
2022/04/07 Vue.js
MySQL索引 高效获取数据的数据结构
2022/05/02 MySQL