另一道遞歸算法題(2009年企業面試題)
- 面試
- 關注:9.68K次
一個整數,大於0,不用循環和本地變量,按照n,2n,4n,8n的順序遞增。當值大於5000時,把值按照指定順序輸出來。
例:n=1237
則輸出為:
1237,
2474,
4948,
9896,
9896,
4948,
2474,
1237,
提示:寫程序時,先致謝按遞增方式的代碼,寫好遞增的以後,在增加考慮遞減的'部分。
static void doubleNum(int x)
{
tln(x);
if(x<=5000)< p="">
{
doubleNum(2*x);
}
public static void main(String[] args)
{
doubleNum(323);
}
}
執行結果為:323 646 1292 2584 5168
大家再看下面的例子,有何區別?
public class Num
{
static void doubleNum(int x)
{
tln(x);
if(x<=5000)< p="">
{
doubleNum(2*x);
}
tln(x);
}
public static void main(String[] args)
{
doubleNum(323);
}
}
執行結果:323 646 1292 2584 5168 5168 2584 1292 646323
大家看到了,結果和上個例子完全不一樣,結果又重新打印了一次,而且順序正好相反。
- 文章版權屬於文章作者所有,轉載請註明 https://xuewengu.com/flzc/mianshi/311j7r.html