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 相关文章推荐
PHP4 与 MySQL 数据库操作函数详解
Oct 09 PHP
PHP 实现多服务器共享 SESSION 数据
Aug 15 PHP
PHP5 字符串处理函数大全
Mar 23 PHP
php全局变量和类配合使用深刻理解
Jun 05 PHP
深入Nginx + PHP 缓存详解
Jul 11 PHP
php中file_get_contents与curl性能比较分析
Nov 08 PHP
php校验表单检测字段是否为空的方法
Mar 20 PHP
Yii2实现中国省市区三级联动实例
Feb 08 PHP
PHP无限极分类函数的实现方法详解
Apr 15 PHP
PHP实现二维数组中的查找算法小结
Jun 09 PHP
PHP实现从PostgreSQL数据库检索数据分页显示及根据条件查找数据示例
Jun 09 PHP
详解关于php的xdebug配置(编辑器vscode)
Jan 29 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
使用Xdebug调试和优化PHP程序之[1]
2007/04/17 PHP
PHP 简单日历实现代码
2009/10/28 PHP
pdo中使用参数化查询sql
2011/08/11 PHP
CodeIgniter使用phpcms模板引擎
2013/11/12 PHP
php中文繁体和简体相互转换的方法
2015/03/21 PHP
php实现等比例不失真缩放上传图片的方法
2016/11/14 PHP
PHP实现长轮询消息实时推送功能代码实例讲解
2021/02/26 PHP
简单通用的JS滑动门代码
2008/12/19 Javascript
jquery实现的让超出显示范围外的导航自动固定屏幕最顶上
2011/09/22 Javascript
js弹出层永远居中实现思路及代码
2013/11/29 Javascript
jquery表单验证框架提供的身份证验证方法(示例代码)
2013/12/27 Javascript
javascript回车完美实现tab切换功能
2014/03/13 Javascript
jquery实现简单合拢与展开网页面板的方法
2015/09/01 Javascript
jquery京东商城双11焦点图多图广告特效代码分享
2015/09/06 Javascript
带有定位当前位置的百度地图前端web api实例代码
2016/06/21 Javascript
Vue中v-for的数据分组实例
2018/03/07 Javascript
AngularJS标签页tab选项卡切换功能经典实例详解
2018/05/16 Javascript
微信小程序--获取用户地理位置名称(无须用户授权)的方法
2019/04/29 Javascript
Layui给switch添加响应事件的例子
2019/09/03 Javascript
[06:04]DOTA2国际邀请赛纪录片:Just For LGD
2013/08/11 DOTA
python 中文乱码问题深入分析
2011/03/13 Python
Python检测网站链接是否已存在
2016/04/07 Python
Python第三方库xlrd/xlwt的安装与读写Excel表格
2017/01/21 Python
mac安装scrapy并创建项目的实例讲解
2018/06/13 Python
python的继承知识点总结
2018/12/10 Python
Python实现插入排序和选择排序的方法
2019/05/12 Python
如何真正的了解python装饰器
2020/08/14 Python
使用tkinter实现三子棋游戏
2021/02/25 Python
世界领先的以旅馆为主的在线预订平台:Hostelworld
2016/10/09 全球购物
Marc Jacobs官方网站:美国奢侈品牌
2017/08/29 全球购物
飞利信loadrunner和软件测试笔试题
2012/09/22 面试题
员工年终考核评语
2014/12/31 职场文书
新闻稿件写作技巧
2015/07/18 职场文书
公司借款担保书
2015/09/22 职场文书
2016暑期校本培训心得体会
2016/01/08 职场文书
cypress测试本地web应用
2022/06/01 Javascript