码迷,mamicode.com
首页 > Web开发 > 详细

PHP第四天作业:可变变量的首次应用

时间:2016-11-19 02:12:10      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:数字   相同   bsp   不重复   提取   $$   保存   而且   实现   

今天作业第五题:

5、由数字1、2、3、4能组成多少个不重复的 3位数字,要求一个数中不能有重复出现的数字。

这道题一上手的第一时间就是用for循环遍历所有可能性,并且找出符合条件的元素。

那么代码就不详解了,基本都会:

for($s1=1;$s1<5;$s1++){
  for($s2=1;$s2<5;$s2++){
    for($s3=1;$s3<5;$s3++){
      if($s1!=$s2&&$s1!=$s3&&$s2!=$s3){
        echo $s1,$s2,$s3,"<br />";
      }
    }
  }
}

第五题就做出来了,那么如果题目要求的数字并不是1、2、3、4这种有规律的数字呢?

例如:2、4、7、9  ?这又如何实现?

方法有两个,一个是把这新的四个数字都保存到一个数组里面,然后每次输出,都去找这个数组的下标即可,不过还没学到数组,我也不太会应用所以就放弃了这个念头。

要在学过的知识里找到方法,于是我想到了 可变变量 ,这就是方法二。

理由如下:数字的量是固定的,而且排序也没有硬性要求,而且只需要引用出来就好并不需要进行过多的处理……这些条件凑到一起,难免让我想到可变变量上去。

首先定义四个变量,名字相同,后缀为1、2、3、4的变量存放这四个新的数据:2、4、7、9;

然后后面遍历的时候只需要提取出分别的变量名,然后输出这个变量即可。

所以只需要对源代码进行一点点修饰,就可以轻松达成:

强化版5、由数字2、4、7、9能组成多少个不重复的 3位数字,要求一个数中不能有重复出现的数字。

代码如下:

$a1=2;
$a2=4;
$a3=7;
$a4=9;
for($s1=1;$s1<5;$s1++){
  for($s2=1;$s2<5;$s2++){
    for($s3=1;$s3<5;$s3++){
      if($s1!=$s2&&$s1!=$s3&&$s2!=$s3){
        $b="a".$s1;
        $c="a".$s2;
        $d="a".$s3;
        echo $$b,$$c,$$d,"<br />";
      }
    }
  }
}

这样就能实现任意四个数,凑成任意三位数,并且个位数上数字不同的效果了。

对这道题继续拓展到任意数量的数字时,也只是定义时追加定义,或者当数据过大时使用循环语句进行定义,重复上述代码即可。

而拓展到任意位数时,就是增加代码里面的for循环次数以及判断次数而已。

PHP第四天作业:可变变量的首次应用

标签:数字   相同   bsp   不重复   提取   $$   保存   而且   实现   

原文地址:http://www.cnblogs.com/hjh050419/p/6079603.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!