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 相关文章推荐
不用数据库的多用户文件自由上传投票系统(3)
Oct 09 PHP
php实现的MySQL通用查询程序
Mar 11 PHP
PHP CURL模拟GET及POST函数代码
Apr 25 PHP
php 多关键字 高亮显示实现代码
Apr 23 PHP
Codeigniter实现智能裁剪图片的方法
Jun 12 PHP
Laravel框架数据库CURD操作、连贯操作总结
Sep 03 PHP
php mysql 封装类实例代码
Sep 18 PHP
PHP7下协程的实现方法详解
Dec 17 PHP
PHP实现微信支付(jsapi支付)流程步骤详解
Mar 15 PHP
PHP进阶学习之依赖注入与Ioc容器详解
Jun 19 PHP
在 Laravel 项目中使用 webpack-encore的方法
Jul 21 PHP
Laravel框架创建路由的方法详解
Sep 04 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 写文本日志实现代码
2010/05/18 PHP
PHP中call_user_func_array()函数的用法演示
2012/02/05 PHP
浅析php数据类型转换
2014/01/09 PHP
php实现将上传word文件转为html的方法
2015/06/03 PHP
PHP中session跨子域的三种实现方法
2016/07/25 PHP
PHP中用Trait封装单例模式的实现
2019/12/18 PHP
jQuery的一些注意
2006/12/06 Javascript
在jQuery 1.5中使用deferred对象的代码(翻译)
2011/03/10 Javascript
JavaScript实现自己的DOM选择器原理及代码
2013/03/04 Javascript
Javascript闭包用法实例分析
2015/01/23 Javascript
chrome不支持form.submit的解决方案
2015/04/28 Javascript
JavaScript多并发问题如何处理
2015/10/28 Javascript
基于javascript如何传递特殊字符
2015/11/30 Javascript
基于Javascript实现二级联动菜单效果
2016/03/04 Javascript
微信小程序与php 实现微信支付的简单实例
2017/06/23 Javascript
javascript设计模式 ? 组合模式原理与应用实例分析
2020/04/14 Javascript
JS使用setInterval计时器实现挑战10秒
2020/11/08 Javascript
[49:41]NB vs NAVI Supermajor小组赛A组 BO3 第一场 6.2
2018/06/03 DOTA
Python基本数据类型详细介绍
2014/03/11 Python
浅谈Pycharm中的Python Console与Terminal
2019/01/17 Python
Python常用编译器原理及特点解析
2020/03/23 Python
10个示例带你掌握python中的元组
2020/11/23 Python
CSS3教程(10):CSS3 HSL声明设置颜色
2009/04/02 HTML / CSS
戴尔美国官方折扣店:Dell Outlet
2018/02/13 全球购物
美国运动鞋类和服装零售连锁店:Shoe Palace
2019/08/13 全球购物
小加工厂管理制度
2014/01/21 职场文书
课程改革实施方案
2014/03/16 职场文书
幼儿园家长评语大全
2014/04/16 职场文书
市场营销专业自荐书
2014/06/10 职场文书
党员群众路线教育实践活动学习笔记
2014/11/05 职场文书
吧主申请感言怎么写
2015/08/03 职场文书
浅谈Java父子类加载顺序
2021/08/04 Java/Android
Java spring定时任务详解
2021/10/05 Java/Android
我收到了德劲DE1107
2022/04/05 无线电
Nginx配置根据url参数重定向
2022/04/11 Servers
Python实现Matplotlib,Seaborn动态数据图
2022/05/06 Python