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的ajax简单实例
Feb 27 PHP
Codeigniter+PHPExcel实现导出数据到Excel文件
Jun 12 PHP
ThinkPHP框架任意代码执行漏洞的利用及其修复方法
Jul 04 PHP
PHP之sprintf函数用法详解
Nov 12 PHP
PHP IDE PHPStorm配置支持友好Laravel代码提示方法
May 12 PHP
验证坐标在某坐标区域内php代码
Oct 08 PHP
PHP面相对象中的重载与重写
Feb 13 PHP
可兼容php5与php7的cURL文件上传功能实例分析
May 11 PHP
实例讲解PHP表单处理
Feb 15 PHP
基于laravel-admin 后台 列表标签背景的使用方法
Oct 03 PHP
Laravel实现ORM带条件搜索分页
Oct 24 PHP
laravel框架使用阿里云短信发送消息操作示例
Feb 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 array_flip() 删除数组重复元素
2009/01/14 PHP
php更改目录及子目录下所有的文件后缀扩展名的代码
2010/10/12 PHP
Laravel中validation验证 返回中文提示 全局设置的方法
2019/09/29 PHP
jQuery.get、jQuery.getJSON、jQuery.post无法返回JSON问题的解决方法
2011/07/28 Javascript
简单的JavaScript互斥锁分享
2014/02/02 Javascript
jQuery 仿百度输入标签插件附效果图
2014/07/04 Javascript
avalonjs实现仿微博的图片拖动特效
2015/05/06 Javascript
Jquery attr()方法 属性赋值和属性获取详解
2016/04/15 Javascript
如何用js实现鼠标向上滚动时浮动导航
2016/07/18 Javascript
利用select实现年月日三级联动的日期选择效果【推荐】
2016/12/13 Javascript
BootStrap中jQuery插件Carousel实现轮播广告效果
2017/03/27 jQuery
vue2.0 路由不显示router-view的解决方法
2018/03/06 Javascript
基于Bootstrap下拉框插件bootstrap-select使用方法详解
2018/08/07 Javascript
vue-video-player 通过自定义按钮组件实现全屏切换效果【推荐】
2018/08/29 Javascript
webstorm+vue初始化项目的方法
2018/10/18 Javascript
JS实现的新闻列表自动滚动效果示例
2019/01/30 Javascript
详解关于微信setData回调函数中的坑
2019/02/18 Javascript
Vuex持久化插件(vuex-persistedstate)解决刷新数据消失的问题
2019/04/16 Javascript
vue 验证两次输入的密码是否一致的方法示例
2020/09/29 Javascript
vant组件中 dialog的确认按钮的回调事件操作
2020/11/04 Javascript
微信小程序实现左滑删除效果
2020/11/18 Javascript
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 LGD VS TNC
2018/03/30 DOTA
Python字符串格式化输出方法分析
2016/04/13 Python
Python计算字符宽度的方法
2016/06/14 Python
python3+PyQt5使用数据库表视图
2018/04/24 Python
Python使用Matplotlib模块时坐标轴标题中文及各种特殊符号显示方法
2018/05/04 Python
python实现自动登录后台管理系统
2018/10/18 Python
python实现支付宝转账接口
2019/05/07 Python
Python hashlib常见摘要算法详解
2020/01/13 Python
解决python中0x80072ee2错误的方法
2020/07/19 Python
HTML5自定义视频播放器源码
2020/01/06 HTML / CSS
学习考察心得体会
2014/09/04 职场文书
家庭贫困证明
2014/09/23 职场文书
2015年五四青年节演讲稿
2015/03/18 职场文书
信息技术国培研修日志
2015/11/13 职场文书
个人职业生涯规划之自我评估篇
2019/09/03 职场文书