当前位置:  开发笔记 > 编程语言 > 正文

打印小于或等于1234的所有3位数字

如何解决《打印小于或等于1234的所有3位数字》经验,为你挑选了1个好方法。

我有以下任务:编写声明数字n的PHP脚本,然后查找所有小于或等于n且由唯一数字组成的3位数字.如果不存在这样的数字,则打印"否".

我有这个代码:



它仅适用于大于100的数字.当我更改例如1的$ number的值时,它显示为空白,而不是"否"



1> Jeremy Harri..:

出于学习目的,这样的任务可以通过将其分解为函数来最好地解决,以便您可以更清楚地看到正在发生的事情.所以,例如我们有这些规则:

必须是3位数

必须小于 n

必须包含唯一的数字

所以我们可以编写3个接受$i值和$n值的函数并返回true/false.

function isThreeDigits($i) {
    if ((int) $i > 99 && (int) $i < 1000) {
        return true;
    }

    return false;
}

function isLessThanN($i, $n) {
    return (bool) ((int) $i < (int) $n);
}

function isUniqueDigits($i) {
    $parts = str_split((string) $i);
    $initialCount = count($parts);
    $uniqueCount = count(array_unique($parts));
    if ($initialCount === $uniqueCount) {
        return true;
    }

    return false;
}

使用这三个功能,我们可以检查所有内容:

$n = 1522;
for ($i = 0; $i < $n; $i++) {

    if (isThreeDigits($i) && isLessThanN($i, $n) && isUniqueDigits($i)) {
        echo "MATCH: $i \n";
    } else {
        echo "NO \n";
    }

}


@RumenPanchev为了记录,StackOverflow不是"为我的网站编写代码".你的问题很少.我花时间写一个简单的答案来推动你朝着正确的方向前进.祝好运.
@RumenPanchev不要粗鲁.回答问题的人是忙碌生活的志愿者,就像你的一样.
推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有