【问题标题】:php Algorithm to print a aa aaa ab aab till zzzphp算法打印a aa aaa ab aab直到zzz
【发布时间】:2013-09-28 19:44:04
【问题描述】:

嗨,我需要从 a 打印到 zzz 最多 3 个字母,例如我的输出应该是

A
B
.
.
.
Z
AA
AB
.
.
AZ
BA
BB
.
.
.
ZZ
AAA
AAB
.
.
.
.
ZZZ

过去 5 个小时我一直在努力,我找不到任何逻辑,我尝试了下面的代码

<?php
for ($i=65; $i<=90; $i++) { 
for ($i=65; $i<=90; $i++) {     
for ($i=65; $i<=90; $i++) {     
    echo chr($i).chr($i).chr($i)."<br>";      
}
}
}
?>

【问题讨论】:

    标签: php loops


    【解决方案1】:

    PHP 有一个方便的功能,即递增字符串的工作方式与您描述的完全一样。

    所以你只需要:

    for( $i="A"; $i!="ZZZ"; $i++) {
        echo $i."<br />";
    }
    

    编辑:最后打印“ZZZ”(而不是“ZZY”)的修订解决方案:

    $i = 'A';
    do {
      echo $i . '<br />';
    } while ( $i++ != 'ZZZ' );
    

    【讨论】:

    • 很好的解决方案,但要注意 1 个错误! $i!="AAAA" 条件会做到这一点
    • 值得注意的是,它以“ZZY”结尾。否则,很好的解决方案。
    • 我冒昧地提交了一个以所需字符串结尾的替代解决方案,并且不会强迫您思考下一个是什么。
    • @finishingmove 我冒昧地编辑了您的编辑,因为我意识到它看起来让人想起 do ... while 循环。关键是要意识到if ( $i ) { } $i++if ( $i++ ) 相同(后增量“返回”原始值,而不是新值),这使得测试成为循环中的最后一件事。
    • 顺便说一句,“相关问题”框将我指向this question,这解释了为什么使用除相等之外的比较(&lt;&lt;= 等)来打破循环不会'行不通,即使这似乎是合乎逻辑的事情。
    【解决方案2】:

    我不确定你是否已经让它完美运行,但你的代码需要一个非常小的调整:

    http://phpfiddle.org/lite/code/zqh-dyv

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-02
      • 2022-11-18
      • 1970-01-01
      • 2011-05-04
      • 1970-01-01
      • 2012-09-23
      • 2016-09-25
      • 2011-07-30
      相关资源
      最近更新 更多