【发布时间】:2018-03-16 16:43:49
【问题描述】:
我用 PHP 和 Java 编写了一个程序,它生成所有可能的长度为 2 的单词。 我使用了递归。 为什么程序在 Java 中可以运行,而在 PHP 中却不行?这是相同的代码。
Java
package com.company;
public class Words {
public static void main(String[] args) {
generate("", 2);
}
static void generate(String prefix, int remainder) {
if (remainder == 0) {
System.out.println(prefix);
} else {
for (char c = 'A'; c <= 'Z'; c++) {
generate(prefix + c, remainder - 1);
}
}
}
}
PHP
generate('', 2);
function generate($prefix, $remainder)
{
if ($remainder == 0) {
echo "$prefix\n";
} else {
for ($c = 'A'; $c <= 'Z'; $c++) {
generate($prefix . $c, $remainder - 1);
}
}
}
【问题讨论】:
-
PHP程序为给定的输入打印什么? -
我不熟悉 php 中的第一行生成了什么,你声明了变量吗?您是否在 .php 文件中工作。我在这里没有太多工作要做,我只是想看看你是否看过基础知识
-
在 PHP 中:它打印所有可能的单词,直到长度为 4。然后它在 YZYZ 处停止。但它应该停在 ZZ
-
你的代码有效,我在writephponline.com 上试了一下,得到了这样的输出:i.imgur.com/zgtaxj4.png
-
是的,但它应该停在 ZZ。就像Java一样。但它不会停止。
标签: java php recursion generator