0
首先,這不是功課 - 只是我的好奇心,因爲我由於某種原因不能解決它我的頭。我一直都在想這些愚蠢的事情,當我無法解決它們時,它會讓我感到很難過。遞歸的功能,看看你能不能解決它
代碼示例是用C#編寫的,但解決方案不一定要用任何特定的編程語言。
long powerofnum(short num, long powerof)
{
return powerofnum2(num, powerof, powerof);
}
long powerofnum2(short num, long powerof, long holder)
{
if (num == 1)
return powerof;
else
{
return powerof = powerofnum2(num - 1, holder * powerof, holder);
}
}
正如你所看到的,我有兩種方法。我打電話給powerofnum(value,powerofvalue),然後用第三個參數作爲佔位符調用下一個方法的權值,以便通過遞歸記住原始的powerof值。
我想完成的是隻用一種方法來做到這一點。 我知道我可以在第一個方法中聲明一個變量來記住它,然後從0到num的值迭代。但是,因爲這是一個理論問題,我希望它遞歸地完成。
我也可以在第一個方法中取第三個參數,稱爲無論如何存儲值,就像我在第一個調用的第二個方法中一樣,但看起來非常愚蠢。爲什麼你必須寫兩次似乎是相同的參數?
規則在短期解釋說:
- 沒有迭代
- 具體範圍,只
- 只有一個方法
總之變數,我會很感激一個乾淨的解決方案。
祝你好運:)
簡直太神奇了,謝謝:) – 2010-04-23 23:37:38