PHP语言之用php解决一个数学题
小标 2018-11-27 来源 : 阅读 1045 评论 0

摘要:本文主要向大家介绍了PHP语言之用php解决一个数学题,通过具体的内容向大家展示,希望对大家学习php语言有所帮助。

本文主要向大家介绍了PHP语言之用php解决一个数学题,通过具体的内容向大家展示,希望对大家学习php语言有所帮助。

一个六位数,当分别用2,3,4,5,6乘它后,得到的五个乘积都是一个六位数,而且这得到的五个数是由原来六个数字组成,只是顺序改变了!
求高手帮助解决下!

貌似大家都默认了一个现象

 之前提出的一个假设 貌似大家做算法的时候都不考虑这种情况的存在可能 如果哪位有论证过这种假设不成立或者楼主的题目本身就默认不考虑这种假设 请大侠们说明一下
 
 如果没有论证或者题目没有明确说明不考虑这种假设 算法设计再好也是不合题意的无效算法

 写了两种算法:
 第一种思路是判断相乘的数的各个位之和是否相等,不过效率不太好。
 第二种算法换了一种思路,用了字符反方向验证,因为正向会有一部分高位的不必要的运算。代码很简洁,效率很不错,附上代码:
 
 第一种算法,判断各个位数之和:

 第二种算法,字符反方向查询:

 第一个算法在我的PE2140@2.66GHz上需要440ms,第二种只需要180ms。 

 
 解决的方法有一个:
 得出每一位,逐个位排除.
 如得两个位数相同,则两个同时删除或更改.
 比如:
 ''123451''和''123456''
 逐位删除或更改的话,剩下的一位就不等了.

 for($i = 100000;$i < 166667;$i++)  //数的范围
 {
 ....
         for($ii=2;$ii<7;$ii++)  // 2-6的倍数
         {
 .....
                 for($j=0;$j<6;$j++)           //数的个数
                 {
 if(strpos($i,substr($i*$ii,$j,        

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言PHP频道!


本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程