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环境搭建最新方法
Sep 05 PHP
php输出xml格式字符串(用的这个)
Jul 12 PHP
解析php二分法查找数组是否包含某一元素
May 23 PHP
基于php socket(fsockopen)的应用实例分析
Jun 02 PHP
解析在zend Farmework下如何创立一个FORM表单
Jun 28 PHP
PHP正则提取不包含指定网址的图片地址的例子
Apr 21 PHP
php实现可用于mysql,mssql,pg数据库操作类
Dec 13 PHP
Thinkphp和onethink实现微信支付插件
Apr 13 PHP
php获取linux命令结果的实例
Mar 13 PHP
php解析mht文件转换成html的实例
Mar 13 PHP
完美解决Thinkphp3.2中插入相同数据的问题
Aug 01 PHP
Laravel 创建指定表 migrate的例子
Oct 09 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 ctype函数中文翻译和示例
2014/03/21 PHP
跟我学Laravel之请求(Request)的生命周期
2014/10/15 PHP
浅谈ThinkPHP的URL重写
2014/11/25 PHP
PHP中对数组的一些常用的增、删、插操作函数总结
2015/11/27 PHP
总结PHP删除字符串最后一个字符的三种方法
2016/08/30 PHP
CentOS 上搭建 PHP7 开发测试环境
2017/02/26 PHP
Javascript常用运算符(Operators)-javascript基础教程
2007/12/14 Javascript
浅谈JQuery+ajax+jsonp 跨域访问
2016/06/25 Javascript
谈谈因Vue.js引发关于getter和setter的思考
2016/12/02 Javascript
Require.js的基本用法详解
2017/07/03 Javascript
5分钟打造简易高效的webpack常用配置
2017/07/04 Javascript
JS中‘hello’与new String(‘hello’)引出的问题详解
2018/08/14 Javascript
vue登录以及权限验证相关的实现
2019/10/25 Javascript
vue-i18n实现中英文切换的方法
2020/07/06 Javascript
Vue切换Tab动态渲染组件的操作
2020/09/21 Javascript
微信小程序开发数据缓存基础知识辨析及运用实例详解
2020/11/06 Javascript
[41:52]2018DOTA2亚洲邀请赛3月29日小组赛B组Effect VS Secret
2018/03/30 DOTA
基于Python pip用国内镜像下载的方法
2018/06/12 Python
浅谈Pycharm中的Python Console与Terminal
2019/01/17 Python
python输出决策树图形的例子
2019/08/09 Python
浅析python 通⽤爬⾍和聚焦爬⾍
2020/09/28 Python
canvas学习笔记之2d画布基础的实现
2019/02/21 HTML / CSS
解决html5中的video标签ios系统中无法播放使用的问题
2020/08/10 HTML / CSS
高级3D打印市场:Gambody
2019/12/26 全球购物
环境工程毕业生自荐信
2013/11/17 职场文书
大学生期末自我鉴定
2014/02/01 职场文书
优秀毕业生自我鉴定
2014/02/11 职场文书
高中军训感言500字
2014/02/24 职场文书
学雷锋宣传标语
2014/06/25 职场文书
2014年党的群众路线教育实践活动整改措施(个人版)
2014/09/25 职场文书
学生考试舞弊检讨书
2015/01/01 职场文书
酒会邀请函
2015/01/31 职场文书
证劵公司反洗钱宣传活动总结
2015/05/08 职场文书
食品安全责任书范本
2015/05/09 职场文书
超详细Python解释器新手安装教程
2021/05/10 Python
python获取字符串中的email
2022/03/31 Python