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 的几个配置文件函数
Dec 21 PHP
php在线生成ico文件的代码
Oct 09 PHP
基于PHP magic_quotes_gpc的使用方法详解
Jun 24 PHP
php 字符串压缩方法比较示例
Jan 23 PHP
php获取中文拼音首字母类和函数分享
Apr 24 PHP
PHP利用func_get_args和func_num_args函数实现函数重载实例
Nov 12 PHP
Dwz与thinkphp整合下的数据导出到Excel实例
Dec 04 PHP
PHP动态柱状图实现方法
Mar 30 PHP
PHP学习笔记(二):变量详解
Apr 17 PHP
PHP正则匹配操作简单示例【preg_match_all应用】
Jul 10 PHP
laravel 验证错误信息到 blade模板的方法
Sep 29 PHP
PHP实现文件上传后台处理脚本
Mar 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
解析smarty模板中类似for的功能实现
2013/06/18 PHP
PHP中error_log()函数的使用方法
2015/01/20 PHP
PHP获取数组最后一个值的2种方法
2015/01/21 PHP
php三元运算符知识汇总
2015/07/02 PHP
php curl上传、下载、https登陆实现代码
2017/07/23 PHP
详解在YII2框架中使用UEditor编辑器发布文章
2018/11/02 PHP
PHP微商城开源代码实例
2019/03/27 PHP
PHP实现常用排序算法的方法
2020/02/05 PHP
jQuery阻止事件冒泡具体实现
2013/10/11 Javascript
JavaScript实现在标题栏上显示当前日期的方法
2015/03/19 Javascript
js实现图片无缝滚动特效
2020/03/19 Javascript
javascript学习笔记_浅谈基础语法,类型,变量
2016/09/19 Javascript
详解百度百科目录导航树小插件
2017/01/08 Javascript
JavaScript实现打地鼠小游戏
2020/04/23 Javascript
form表单数据封装成json格式并提交给服务器的实现方法
2017/12/14 Javascript
Angular6中使用Swiper的方法示例
2018/07/09 Javascript
小程序云开发部署攻略(图文教程)
2018/10/30 Javascript
微信小程序开发(三):返回上一级页面并刷新操作示例【页面栈】
2020/06/01 Javascript
vue 实现在同一界面实现组件的动态添加和删除功能
2020/06/16 Javascript
vue实现单一筛选、删除筛选条件
2020/10/26 Javascript
python实现线程池的方法
2015/06/30 Python
Django使用httpresponse返回用户头像实例代码
2018/01/26 Python
Python 25行代码实现的RSA算法详解
2018/04/10 Python
对numpy中的where方法嵌套使用详解
2018/10/31 Python
python爬虫解决验证码的思路及示例
2019/08/01 Python
详解python中eval函数的作用
2019/10/22 Python
基于Django OneToOneField和ForeignKey的区别详解
2020/03/30 Python
python shapely.geometry.polygon任意两个四边形的IOU计算实例
2020/04/12 Python
物理教师自荐信范文
2013/12/28 职场文书
物理专业本科生自荐信
2014/01/30 职场文书
升旗仪式演讲稿
2014/05/08 职场文书
2014年消防工作总结
2014/11/21 职场文书
大学三好学生主要事迹范文
2015/11/03 职场文书
队列队形口号
2015/12/25 职场文书
低版本Druid连接池+MySQL驱动8.0导致线程阻塞、性能受限
2021/07/01 MySQL
Python+OpenCV实现在图像上绘制矩形
2022/03/21 Python