算法及答案

<?php
/**
 *
 */
class Question{
    function __construct(argument) {
        echo '小姐姐萌萌哒^_^!'
    }
    function answer1() {
        $data = [];
        //有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
        for ($i = 1;$i < 5;$i++) { // 以下为三重循环,百位
            for ($j = 1;$j < 5;$j++) { //十位
                for ($k = 1;$k < 5;$k++) { // 个位
                    if ($i != $k && $i != $j && $j != $k) { //确保i、j、k三位互不相同
                        echo $i . $j . $k;
                        $data[] = $i . $j . $k;
                    }
                }
            }
        }
        echo ("\n");
        return $data;
    }
    function answer2() {
        for ($i = 0;$i < 6;$i++) {
            $a[$i][0] = 1;
            $a[$i][$i] = 1;
        }
        //出除了第一位和最后一位的值,保存在数组中
        for ($i = 2;$i < 6;$i++) {
            for ($j = 1;$j < $i;$j++) {
                $a[$i][$j] = $a[$i - 1][$j - 1] + $a[$i - 1][$j];
            }
        }
        //打印
        for ($i = 0;$i < 6;$i++) {
            for ($j = 0;$j <= $i;$j++) {
                echo $a[$i][$j] . ' ';
            }
            echo '<br/>';
        }
    }
    function answer3($mouth) {
        if ($mouth == 1 || $mouth == 2) return 1;
        else return answer3($mouth - 1) + answer3($mouth - 2);
    }
    function answer4($arr) {
        return sort($arr);
    }
    function answer4_1($arr) {
        $num = count($arr);
        for ($i = 0;$i < $num - 1;$i++) {
            for ($j = $i + 1;$j < $num;$j++) {
                if ($arr[$j] < $arr[$i]) {
                    $iTemp = $arr[$i];
                    $arr[$i] = $arr[$j];
                    $arr[$j] = $iTemp;
                }
            }
        }
        return $arr;
    }
    
    //$n代表有几个人围成一圈,$m代表第几人出列
    function answer5($m, $n) {
        $number = count($n);
        $current = 0;
        $num = 1;
        if (count($n) == 1) {
            echo $n[0];
            return;
        } else {
            while ($num++ < $m) {
                $current++;
                $current = $current % $number;
            }
            array_splice($n, $current, 1);
            answer5($n, $m, $current);
        }
    }
}
$xiaojiejie = new Question();
$xiaojiejie->answer1();
$xiaojiejie->answer2();
$xiaojiejie->answer3(10);
$xiaojiejie->answer4_1([5, 8, 6, 3, 9, 2, 1, 7]);
$xiaojiejie->answer1answer5(range(0, 100), 3);
点赞

发表评论