这个方法做什么 - 面试
以下是面试问题......你怎么开始解决这样一个问题?有这样一个问题的一般算法吗?这个方法做什么 - 面试
问题是解释这个方法做了什么。我知道,她给出了一些投入我试图(和它的OK),但我真的不知道如何下手解决这类的问题...
public boolean what (int num) {
boolean ans = true;
for (int x = 2; (x*x <= num) && ans; x=x+1)
{
if ((num % x) == 0)
ans = false;
}
return ans;
}
THX!
回答:
反向engeering过程,您可以按照提供一些示例输入并获取输出,通过该输出可以确定结果。
明智地选择你的输入,以便它可以很容易地解决问题。
在目前的情况下 -
输入:1返回:真
输入:2返回:真
输入:3返回:真
输入:4返回:假
输入:5返回:真
...
输入:9的回报:假//aha...it似乎是素数
...
输入:111回:假
所以在这种情况下,它的素数逻辑。
回答:
它检查num
是否是主要的。
要找出一种方法读取代码并尝试了解它在做什么。你也可以尝试一些输入。对于好的代码,变量和方法的名字也有很大的帮助(这里不是这种情况)。
但是,如果该方法实现的算法不知道,而且您不知道正在解决的问题的上下文,则可能永远无法找出它的功能。
回答:
你可以用几个随机输入 找到它运行的方法,并试图找出你给出的INPUT
和出现的OUTPUT
之间的关系。
在得出结论之前,先检查它已知输出,然后声明您的答案。
回答:
设NUM = 10
public boolean what (int num) {
boolean ans = true;
for (int x = 2; (x*x <= num) && ans; x=x+1)
{ //^ multiply x with x will give (4,9).. When x = 4, than (16<= num) = false
if ((num % x) == 0) // divide 10 by (2,3) if reminder is zero that means 10 is not prime
ans = false; // set ans to false so that for loop can be terminated or just break;
}
return ans;
}
回答:
在上述程序中最初假设数目为不是素数。如果任何大于2且小于或等于数字平方根的数字除以给定数字,则该数字不是素数。
如果数字不是素数,则该方法返回true,如果数字是质数,则返回false。
回答:
方法的目的:找出素数。
如果输入数字是素数,则此方法会输出booleaan ans ='true'。 否则它会返回false值。
由此可见,以找出是否一个数是质不是最简单的逻辑..
例如,如果一个数字是11, 第1步 - 我们用NUM直到(NUM * NUM)乘以它是小于11. {因为所有可能的情况都被测试,所以不需要测试超过值大于num * num的值}。
第2步 - 检查是否将11/2的剩余部分是零或不是,如果余数不为0则11不prime.if它分裂我们回到步骤1
所以循环会。 。
步骤1 NUM = 11,X = 2
步骤2 11%2!= 0所以转到步骤1,NUM undivisible
步骤1 NUM = 11,X = 3
步骤2 11 %3!= 0
步骤1 num = 11,x = 4但x * x = 16和16> 11因此不再有循环,11是素数,因为它不能被任何数字整除直到x = 3。
另一个例子可以是38 .. 步骤1 NUM 38,x = 2时
步骤2 38%2 == 0,所以余数=零和ANS =假因而不再通过循环和 '38'不是素数。
一个更高级的方法来找到一个数字,如果它的素数或不是可以测试其可分性只针对素数。如果我们有相当大的数字作为输入,这实际上更高效。
public boolean what (int num) // number to be tested is passed {
boolean ans = true; // default value
for (int x = 2; (x*x <= num) && ans; x=x+1) //looping till num is found divisibl
{
if ((num % x) == 0)
ans = false; // ans is false in case num is not prime
}
return ans; // num is prime
}
希望解释帮助..如有任何疑问或帮助,请通知我。
以上是 这个方法做什么 - 面试 的全部内容, 来源链接: utcz.com/qa/259411.html