利用PHP判断是否是连乘数字串的方法示例


Posted in PHP onJuly 03, 2017

描述

有这样一道题,给出一个数字串A,需要判断A是否为连乘数字串,连乘数字串的定义就是一个数字串可以拆分成若干个数字,后面的数字(从第N个数字开始)为前面2个数字的乘积。

举例

(1) '122' --- 可以拆成[1|2|2]

结果: 1×2=2  (连乘数字串)

(2) '1122242' --- 可以拆成[11|22|242]

结果:  11×22=242   (连乘数字串)

(3) '1224832256' --- 可以拆成 [1|2|2|4|8|32|256]

结果: 1×2=2,2×2=4,2×4=8,4×8=32,8×32=256 (连乘数字串)

(4) '234547898185239692' --- 可以拆成 [23454|7898|185239692]

结果:23454×7898=185239692 (连乘数字串)

(5) '113' 可以拆成 [1|1|3]

结果:1×1 != 3  (非连乘数字串)

代码

/**
 * 判断是否连乘数字串函数
* @param $strNum
 * @return bool
 **/
function isExec($strNum) {
 $str = (string)$strNum;

 for ($i = 0; $i < strlen($str); $i++) {
  $k = 1;

  for ($j = $i + 1; $j < strlen($str); $j++) {

   $a_i = 0;
   $b_i = $i + 1;
   $p_i = $i + 1;
   $m_i = $k++;
   $c_i = $b_i + $m_i;
   $res = false;
   $formula = [];

   while (1) {
    $a = substr($str, $a_i, $p_i);
    $b = substr($str, $b_i, $m_i);

    $n = $a * $b;

    $c = substr($str, $c_i, strlen($n));

    //echo '<br/>' . $a . '*' . $b . '=' . $n . '->' . $c . '<br/>';

    if($c){
     $formula[] = $a . '*' . $b . '=' . $n;
    }

    if ($c === false || $c === "") {
     break;
    }

    if (intval($n) == intval($c)) {
     $p_i = strlen($b);
     $m_i = strlen($n);
     $a_i = $b_i;
     $b_i = $c_i;
     $c_i = $b_i + $m_i;
     $res = true;
    } else {
     $res = false;
     break;
    }
   }

   if ($res === true) {
    print_r($formula);
    return true;
   }

   //var_dump($res) . '<br/>';
  }

 }

 return false;
}

执行

var_dump(isExec('1224832256'));

//运行结果
Array
[
   [0] => 1*2=2
   [1] => 2*2=4
   [2] => 2*4=8
   [3] => 4*8=32
   [4] => 8*32=256
]
bool(true)

var_dump(isExec('234547898185239692'));

//运行结果
Array
[
   [0] => 23454*7898=185239692
]
bool(true)

var_dump(isExec('1122242'));

//运行结果
Array
[
   [0] => 11*22=242
]
bool(true)

var_dump(isExec('11234'));

//运行结果
bool(false)

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

PHP 相关文章推荐
php Undefined index和Undefined variable的解决方法
Mar 27 PHP
Discuz 模板语句分析及知识技巧
Aug 21 PHP
腾讯QQ php程序员面试题目整理
Jun 08 PHP
php报表之jpgraph柱状图实例代码
Aug 22 PHP
深入理解php的MySQL连接类
Jun 07 PHP
ThinkPHP访问不存在的模块跳转到404页面的方法
Jun 19 PHP
PHP实现上一篇下一篇的方法实例总结
Sep 22 PHP
php array_values 返回数组的值实例详解
Nov 17 PHP
PHP编程计算日期间隔天数的方法
Apr 26 PHP
PHP htmlentities()函数用法讲解
Feb 25 PHP
微信公众号实现扫码获取微信用户信息(网页授权)
Apr 09 PHP
Laravel 5.5 实现禁用用户注册示例
Oct 24 PHP
使用Zttp简化Guzzle 调用
Jul 02 #PHP
详解php几行代码实现CSV格式文件输出
Jul 01 #PHP
Laravel 中使用 Vue.js 实现基于 Ajax 的表单提交错误验证操作
Jun 30 #PHP
详解如何在云服务器上部署Laravel
Jun 30 #PHP
[企业公众号]升级到[企业微信]之后发送消息失败的解决方法
Jun 30 #PHP
ThinkPHP实现登录退出功能
Jun 29 #PHP
PHP实现微信图片上传到服务器的方法示例
Jun 29 #PHP
You might like
php批量删除数据
2007/01/18 PHP
PHP文件读写操作之文件写入代码
2011/01/13 PHP
基于PHP选项与信息函数的使用详解
2013/05/10 PHP
Symfony2安装的方法(2种方法)
2016/02/04 PHP
PHP使用FFmpeg获取视频播放总时长与码率等信息
2016/09/13 PHP
php源码的使用方法讲解
2019/09/26 PHP
Mootools 图片展示插件(lightbox,ImageMenu)收集集合
2010/05/21 Javascript
jQuery 常见操作实现方式和常用函数方法总结
2011/05/06 Javascript
node.js中的http.response.removeHeader方法使用说明
2014/12/14 Javascript
jQuery中[attribute=value]选择器用法实例
2014/12/31 Javascript
jQuery实现html元素拖拽
2015/07/21 Javascript
jquery获取select选中值的方法分析
2015/12/22 Javascript
基于javascript实现最简单的选项卡切换效果
2016/05/16 Javascript
基于原生JS实现图片裁剪
2016/08/01 Javascript
解决vue2.x中数据渲染以及vuex缓存的问题
2017/07/13 Javascript
使用react-router4.0实现重定向和404功能的方法
2017/08/28 Javascript
jQuery实现文件编码成base64并通过AJAX上传的方法
2018/04/12 jQuery
详解.vue文件解析的实现
2018/06/11 Javascript
elementUI vue this.$confirm 和el-dialog 弹出框 移动 示例demo
2019/07/03 Javascript
python操作ssh实现服务器日志下载的方法
2015/06/03 Python
Python网络爬虫实例讲解
2016/04/28 Python
关于python写入文件自动换行的问题
2018/06/23 Python
Python3爬虫爬取百姓网列表并保存为json功能示例【基于request、lxml和json模块】
2018/12/05 Python
python2.7使用plotly绘制本地散点图和折线图
2019/04/02 Python
python游戏开发之视频转彩色字符动画
2019/04/26 Python
python对文件目录的操作方法实例总结
2019/06/24 Python
搭建python django虚拟环境完整步骤详解
2019/07/08 Python
Python如何实现机器人聊天
2020/09/10 Python
10个python爬虫入门基础代码实例 + 1个简单的python爬虫完整实例
2020/12/16 Python
美国彩妆品牌:Coastal Scents
2017/04/01 全球购物
RUIFIER官网:英国奢侈高级珠宝品牌
2020/06/12 全球购物
竞聘医务工作人员的自我评价分享
2013/11/04 职场文书
《大海那边》教学反思
2014/04/09 职场文书
质量月口号
2014/06/20 职场文书
医院2014国庆节活动策划方案
2014/09/21 职场文书
邀请函的格式
2015/01/30 职场文书