0

我现在在我的编程课上学习递归,虽然我了解如何将递归用于阶乘和回溯算法之类的东西,但我一直在试图围绕递归首字母缩写词(如 PHP)如何迭代相当长的时间一段时间知道。一个人怎么可能写一个程序来迭代 PHP 的 n 次扩展?

编辑:我需要澄清我的问题 PHP 是递归首字母缩写词,代表 PHP:个人主页。因此,如果您要无限次扩展 PHP:超文本处理器,它会不会看起来像 PHP:超文本处理器超文本处理器超文本处理器......或其他不同的东西

4

3 回答 3

2

我完全猜测你在问什么,但如果我是对的,它会是这样的:

function recursePHP($n) {
    if ($n <= 0)
        return 'PHP';

    return recursePHP($n-1) . 'Hypertext Processor';
}

鉴于 n=2:“PHP 超文本处理器超文本处理器”,这将采用递归函数方法解决您的问题

我认为这是通过首字母缩略词递归的正确方法,因为考虑到您最终得到“PHP 超文本处理器”的第一次迭代,其中的 PHP 解析为“PHP 超文本处理器”,因此变成“ PHP 超文本处理器超文本处理器”粗体部分是第一次迭代中的 PHP,等等。直到你迭代了指定数量的递归,然后你才解析 PHP 并最终以 PHP 开头,然后是n“超文本处理器”。

于 2013-09-24T21:48:51.453 回答
0

由于 PHP 是 PHP 超文本处理器的首字母缩写词,我猜扩展的结果将是 PHP(超文本处理器){Inf},因为 PHP 中的第一个 P 扩展为 PHP,而其他两个字母为每次迭代添加超文本处理器。

于 2013-09-24T23:44:28.987 回答
0

我假设“PHP:超文本处理器”在第一次迭代后会扩展为“PHP:超文本处理器HP:超文本处理器”。

尝试这个:

function iteration($i = 0) {
    if ($i < 10)
    {
        echo iteration($i + 1) . 'HP: Personal Home Page';
    }
    else
    {
        echo 'P';
    }
}

iteration();

未经测试,但足以让您入门。

编辑:嗯,考虑一下,我真的不确定这个缩写词是如何递归的:-)

于 2013-09-24T21:47:32.780 回答