一道面试题
一个整数,大于0,不用循环和本地变量,按照n,2n,4n,8n的顺序递增,当值大于5000时,把值按照指定顺序输出来。
例:n=1237
则输出为:
1237,
2474,
4948,
9896,
9896,
4948,
2474,
1237,
不用循环我可以用递归,不用本地变量真的就没则了.请各位大侠帮帮忙.
在此谢谢了.
一个整数,大于0,不用循环和本地变量,按照n,2n,4n,8n的顺序递增,当值大于5000时,把值按照指定顺序输出来。
例:n=1237
则输出为:
1237,
2474,
4948,
9896,
9896,
4948,
2474,
1237,
不用循环我可以用递归,不用本地变量真的就没则了.请各位大侠帮帮忙.
在此谢谢了.
这样可以不??
|
真是太漂亮了,Thaink you.ありがど。
2楼的好象也用到了变量,虽然不是本地变量,这样可否:
public static void main(String[] args) {
func(1247,5000);
func2(getmax(1247,5000),1247);
}
public static void func(int n,int max) {
System.out.println(n);
if (n < max)
func(n << 1,max);
}
public static void func2(int n,int min) {
System.out.println(n);
if (n>min)
func2(n >> 1,min);
}
public static int getmax(int n,int max) {
if (n < max)
return getmax(n << 1,max);
else
return n;
}
我是刚学Java不久
有位移应该可以
至少c可以实现
可以有位移
至少c可以实现