利用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扩展函数
Oct 09 PHP
php正则过滤html标签、空格、换行符的代码(附说明)
Oct 25 PHP
php 操作符与控制结构
Mar 07 PHP
基于php权限分配的实现代码
Apr 28 PHP
基于PHP创建Cookie数组的详解
Jul 03 PHP
PHP static局部静态变量和全局静态变量总结
Mar 02 PHP
非常实用的PHP常用函数汇总
Dec 17 PHP
PHP实现一维数组转二维数组的方法
Feb 25 PHP
详解PHP的Yii框架中自带的前端资源包的使用
Mar 31 PHP
Eclipse PHPEclipse 配置的具体步骤
Aug 08 PHP
win10 apache配置虚拟主机后localhost无法使用的解决方法
Jan 27 PHP
YII2框架使用控制台命令的方法分析
Mar 18 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获取网站域名和地址的代码
2008/08/17 PHP
Yii2实现自定义独立验证器的方法
2017/05/05 PHP
解决Yii2邮件发送结果返回成功,但接收不到邮件的问题
2017/05/23 PHP
kindeditor 加入七牛云上传的实例讲解
2017/11/12 PHP
laravel model模型处理之修改查询或修改字段时的类型格式案例
2019/10/17 PHP
JavaScript中的Screen屏幕对象
2008/01/16 Javascript
关于viewport,Ext.panel和Ext.form.panel的关系
2009/05/07 Javascript
Mootools 1.2教程(2) DOM选择器
2009/09/14 Javascript
setInterval,setTimeout与jquery混用的问题
2013/04/08 Javascript
JavaScript在XHTML中的用法详解
2013/04/11 Javascript
浅析jQuery(function(){})与(function(){})(jQuery)之间的区别
2014/01/09 Javascript
基于javascript实现句子翻牌网页版小游戏
2016/03/23 Javascript
Vue中父组件向子组件通信的方法
2017/07/11 Javascript
ES6学习教程之Map的常用方法总结
2017/08/03 Javascript
javascript数组定义的几种方法
2017/10/06 Javascript
vue 自定义组件 v-model双向绑定、 父子组件同步通信的多种写法
2017/11/27 Javascript
关于vue编译版本引入的问题的解决
2018/09/17 Javascript
详解Vue改变数组中对象的属性不重新渲染View的解决方案
2018/09/21 Javascript
微信小程序如何获取用户收货地址
2018/11/27 Javascript
一次Webpack配置文件的分离实战记录
2018/11/30 Javascript
Vue+Django项目部署详解
2019/05/30 Javascript
Vue利用Blob下载原生二进制数组文件
2019/09/25 Javascript
[00:43]FTP典藏礼包 DOTA2三大英雄霸气新套装
2014/03/21 DOTA
列举Python中吸引人的一些特性
2015/04/09 Python
Python基于百度云文字识别API
2018/12/13 Python
python使用pygame模块实现坦克大战游戏
2020/03/25 Python
Python多进程方式抓取基金网站内容的方法分析
2019/06/03 Python
Python3搭建http服务器的实现代码
2020/02/11 Python
Django 5种类型Session使用方法解析
2020/04/29 Python
python numpy实现rolling滚动案例
2020/06/08 Python
使用phonegap播放音频的实现方法
2017/03/31 HTML / CSS
党校培训自我鉴定范文
2014/04/10 职场文书
教师工作自我鉴定范文
2014/09/14 职场文书
婚礼新人答谢词
2015/01/04 职场文书
热爱劳动主题班会
2015/08/14 职场文书
七夕情人节问候语
2015/11/11 职场文书