构造函数求返回值
publicclassFg{publicstaticintf(intn){if(n%2==0||n<3)returnn;elsereturn3*f(n/2)+2*f(n+...
public class Fg{
public static int f(int n){
if(n %2==0 || n<3)
return n;
else
return 3*f(n/2) +2*f(n+3);
}
public static int g(int n) {
try {
return 4*g((n+1)/(n-2));
} catch(Exception e){
return n;
}
}
}
***********************************************************************
public class solo{
public static void main(String[] args){
Fg f = new Fg();
int ri = Fg.g(3);
System.out.println(ri);
}
}
----------------------------------------------------------------------
请问为什么为输入为32呢?
哪位仁兄能帮我解答一下?感谢 展开
public static int f(int n){
if(n %2==0 || n<3)
return n;
else
return 3*f(n/2) +2*f(n+3);
}
public static int g(int n) {
try {
return 4*g((n+1)/(n-2));
} catch(Exception e){
return n;
}
}
}
***********************************************************************
public class solo{
public static void main(String[] args){
Fg f = new Fg();
int ri = Fg.g(3);
System.out.println(ri);
}
}
----------------------------------------------------------------------
请问为什么为输入为32呢?
哪位仁兄能帮我解答一下?感谢 展开
5个回答
展开全部
当函数的返回值为对象值时,比如定义对象:Cat copyFrisky;当函数返回时:return copyFrisky; copyFrisky对象超出作用区域,这时会调用复制构造函数创建该
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这个程序写的很幽默 啊。首先,你这个里面没有构造函数,其次。你这个是递归调用。但是没跳出递归的条件。系统抛异常了。返回一个值。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
堆栈溢出了。这个递归方法public static int g(int n)理论上永远不会执行结束,但是java虚拟机的堆栈空间大小的确定的,递归到某个程度的时候,堆栈空间就会用尽,将溢出,因此方法内部抛出堆栈溢出这个运行时异常,程序内部捕捉到了这个异常,然后返回了异常发生时n的值大小
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-04-03
展开全部
程序只在g方法中运行,在g中又调用g方法,当n==2时,g出现异常,return 回n
实际运行过程是:4*g(4)=4*4*g(2),最后n==2,所以ri==32
实际运行过程是:4*g(4)=4*4*g(2),最后n==2,所以ri==32
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询