Java 有人知道怎么解决这个问题吗?
以下程序产生什么输出? 答案是7,但我很难计算出来Java 有人知道怎么解决这个问题吗?,java,Java,以下程序产生什么输出? 答案是7,但我很难计算出来 public class practice { public static void main(String[] args){ int i = 5; int b = g(i); System.out.println(b+i); } public static int f(int i) { int n = 0; while (n * n &
public class practice {
public static void main(String[] args){
int i = 5;
int b = g(i);
System.out.println(b+i);
}
public static int f(int i) {
int n = 0;
while (n * n <= i) {n++;}
return n-1;
}
public static int g(int a) {
int b = 0;
int j = f(a);
b = b + j;
return b;
}
}
公共课堂实践{
公共静态void main(字符串[]args){
int i=5;
int b=g(i);
系统输出打印LN(b+i);
}
公共静态整数f(整数i){
int n=0;
当(n*n你使用一个数字(5)并基本上检查大于5的第一个整数平方是什么。然后从答案中取反1,再加上5。
这就是数学:
1.找到第一个大于5的整数平方
- 0*0=0/+1
- 1*1=1//+1
- 2*2=4/+1
- 3*3=9//3*3是5以上的第一个值;循环中断
2.从3中取反1(大于
- 3-1=2;//使用3,取反1(也可以使用n--)
3.使用最终值2添加5
- 2+5=7//使用2添加5
答案是7。
这段代码中确实有一些不必要的东西,比如两个额外的方法。我假设调用了main。下面是发生的步骤列表
调用g
时使用5
作为其参数
然后在函数g
中,使用g
的参数调用f
,该参数为5
在函数f
n
中,将调用while循环,每次n*n
小于或等于其参数5时,n将递增。下面概述了while循环。
0*0小于5,将n
从0增加到1,然后继续
1*1小于5,将n
从1增加到2,然后继续
2*2小于5,将n
从2增加到3,然后继续
3*3不小于5,断开循环
n-1
,即3-1=2,返回到函数g
中变量j
中调用它的位置
b
被分配到b+j
,即0+2
b
返回函数main
中的变量b
b+i
,即5+2
,即7,作为答案打印出来
试着在纸上一行一行地计算出来。我做了,但不知怎么的我迷路了,我弄错了号码。好吧,你应该给我们看看你的工作。(你可能因为没有得到选票而落选。)