Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> PHP

Chương trình PHP tìm số bị thiếu trong mảng cho trước

Ví dụ

<?php
function missing_nums($my_arr, $arr_len, $val) {
    sort($my_arr);
    $i = 0;
    while ($i < $val && $my_arr[$i] <= 0)
        $i++;
    $count = 0;
    $current_num = 1;
    while ($count < $val && $i < $arr_len) {
        if ($my_arr[$i] != $current_num) {
            echo $current_num . " ";
            $count++;
        } else
            $i++;
        $current_num++;
    }
    while ($count < $val) {
        echo $current_num . " ";
        $current_num++;
        $count++;
    }
}
$my_arr = array(6, 7, 9);
$arr_len = sizeof($my_arr);
$val = 5;
print_r("The missing numbers in the array is ");
missing_nums($my_arr, $arr_len, $val);
?>

Kết quả

The missing numbers in the array is 1 2 3 4 5

Giải thích

Hàm missing_nums tìm các số tự nhiên bị thiếu từ mảng. Sắp xếp mảng, bỏ qua số ≤0. Duyệt so sánh với counter từ 1, nếu khác thì in ra (số thiếu). Code gốc có lỗi biến $n, $k, $arr chưa khai báo. Đã sửa dùng $val, $my_arr.

Lưu ý: Logic này giả định mảng chứa số tự nhiên dương, tìm các số từ 1 trở lên chưa có trong mảng.