罗马数字和阿拉伯数字之间的转换

本文介绍如何将阿拉伯数字转换为罗马数字,通过将数字拆分成可被罗马数字整除的部分,然后进行字符替换。同时,通过创建键值对数组,可以实现罗马数字到阿拉伯数字的反向转换。对于特殊数字如4、9、40、90等,可以直接在数组中处理。欢迎访问作者博客深入探讨。
摘要由CSDN通过智能技术生成

问题描述:把我们常见的阿拉伯数字转化为罗马数字的形式。
拓展:两种形式的相互转换。
思路:将阿拉伯数字拆分为能够被罗马数字整除的形式(比如100、500等),再整合到一起,然后替换字符为我们需要的形式(比如IIII=>IV,VIV=>IX等等)。再使用键值对形式的数组,在实现阿拉伯数字转罗马数字之后,交换键值,就能实现反向转换了。

function solution($number) {
  $roman = array(
    'M' => 1000,
    'D' => 500,
    'C' => 100,
    'L' => 50,
    'X' => 10,
    'V' => 5,
    'I' => 1
  );
  //从大到小遍历,拆分阿拉伯数字
  foreach($roman as $key=>$item) {
    if($number / $item > 0) {
      $int = intval($number / $item);
      $number -= $int * $item;
      for($i=0;$i<$int;$i++) {
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值