我现在在我的编程课上学习递归,虽然我了解如何将递归用于阶乘和回溯算法之类的东西,但我一直在试图围绕递归首字母缩写词(如 PHP)如何迭代相当长的时间一段时间知道。一个人怎么可能写一个程序来迭代 PHP 的 n 次扩展?
编辑:我需要澄清我的问题 PHP 是递归首字母缩写词,代表 PHP:个人主页。因此,如果您要无限次扩展 PHP:超文本处理器,它会不会看起来像 PHP:超文本处理器超文本处理器超文本处理器......或其他不同的东西
我完全猜测你在问什么,但如果我是对的,它会是这样的:
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
“超文本处理器”。
由于 PHP 是 PHP 超文本处理器的首字母缩写词,我猜扩展的结果将是 PHP(超文本处理器){Inf},因为 PHP 中的第一个 P 扩展为 PHP,而其他两个字母为每次迭代添加超文本处理器。
我假设“PHP:超文本处理器”在第一次迭代后会扩展为“PHP:超文本处理器HP:超文本处理器”。
尝试这个:
function iteration($i = 0) {
if ($i < 10)
{
echo iteration($i + 1) . 'HP: Personal Home Page';
}
else
{
echo 'P';
}
}
iteration();
未经测试,但足以让您入门。
编辑:嗯,考虑一下,我真的不确定这个缩写词是如何递归的:-)
。