private int[] myStuff;
/** Precondition: myStuff contains int values in no particular order.
/*/
public int mystery(int num)
{
for (int k = myStuff.length-1; k>=0; k--)
{
if (myStuff[k] < num)
{
return k;
}
}
return -1;
}以下哪一项最准确地描述了执行以下语句后的myStuff内容?
int m = mystery(n); 答:位置m+1到myStuff.length-1中的所有值都大于或等于n。
有人能解释为什么这个答案是正确的吗?我不确定他们所说的内容是什么意思,但我得出的结论是,因为代码不会改变myStuff的值,所以myStuff是不变的。
发布于 2013-04-10 00:39:44
关于content的问题是有效的。这与内容本身是否发生了变化无关。
当存在这样的代码(从myStuff.length-1到0)且myStuff[k]小于n时,此方法返回一个非负数;或者当所有myStuff的元素大于或等于<myStuff>d11时,此方法返回-1。
让我们考虑一下这两种情况:
m是从右开始的最后一个满足条件myStaff[m] < n的,您的答案是正确的-1 -这意味着所有元素都大于<>d23>(在本例中是<>d24)-因此答案是正确的发布于 2013-04-10 00:32:54
前提条件是,myStuff包含没有特定顺序的整数值。for循环被初始化为k等于myStuff减1的长度(因为数组索引从零开始),在k大于或等于零时迭代,并在每次迭代中从k减一。
如果查看 If 语句,它将返回k的当前值,此时myStuffk的相应索引处的值小于n;因此,数组索引中大于返回值加1的所有值必须大于或等于n。如果myStuff中没有大于n的整数,则返回负1。
我希望这能帮到你。
顺便说一句,你是对的,mySyuff的内容没有改变。
发布于 2013-04-10 00:32:57
你说的对,myStuff是不变的。但是,他们询问数组中的数据、函数的返回值和函数的参数之间的关系。
代码执行以下操作:
n检查该索引的值,如果n较大,则返回当前索引。(if语句)那么这个方法返回什么呢?它返回从末尾mystuff[m] < n开始的第一个索引。(mystuff[i] >= num)
https://stackoverflow.com/questions/15906887
复制相似问题