Java问题。我的代码中有什么问题?
有时候,正常的生活是不够的。在这种情况下,我们有所谓的梯形if和else条件。所以在这里我们将学习如何使用它们 给定一个正整数N。您的任务是检查它是否可整除,如下所示:Java问题。我的代码中有什么问题?,java,Java,有时候,正常的生活是不够的。在这种情况下,我们有所谓的梯形if和else条件。所以在这里我们将学习如何使用它们 给定一个正整数N。您的任务是检查它是否可整除,如下所示: 如果可以被2整除,则打印“2” 如果可以被3整除,则打印“三” 如果可以被11整除,则打印“11” 如果不遵循上述三条规则,请打印“-1” 注:如果N可被上述给定数字中的一个以上整除,则打印最大的一个 输入格式: 输入的第一行包含测试用例的数量T。对于每个测试用例,将有一行包含N 输出格式: 对于每个测试用例,检查整除性,并相应
1 <= T <= 10
1 <= N <= 106
输出:
Three
Eleven
**有关更多输入/输出示例,请使用“预期输出”选项**
class Geeks {
static void isDivisibleByPrime (int n)
{
//Your code here
Scanner sc=new Scanner(System.in);
int a[]=new int[n];
for(int i=0;i<n;i++)
{
a[i]=sc.nextInt();
if(a[i]%2==0)
System.out.println("Two");
else if(a[i]%3==0)
System.out.println("Three");
else if(a[i]%11==0)
System.out.println("Eleven");
else
System.out.println("-1");
}
}
}
class极客{
静态无效可由素数(int n)划分
{
//你的代码在这里
扫描仪sc=新的扫描仪(System.in);
int a[]=新的int[n];
对于(int i=0;iFirst things First-始终在每一块代码周围使用大括号-尤其是对该语言的初学者。这将使您的生活更轻松,任何人都可以阅读您的代码
其次,规范中的要点是打印最大值(如果可以整除),因此您应该首先检查它是否被11除,然后是3,然后是2
最后,我将首先获得所有的输入,而不是在isDivisibleByPrime
方法中,然后为每个输入调用该方法
因此,只需将您的IsDivisible ByPrime
保留为
static void isDivisibleByPrime(int n) {
if (n % 11 == 0) {
System.out.println("Eleven");
} else if (n % 3 == 0) {
System.out.println("Three");
} else if (n % 2 == 0) {
System.out.println("Two");
} else {
System.out.println("-1");
}
}
并在其他地方用这些值来称呼它
Scanner sc = new Scanner(System.in);
System.out.println("Enter number of test cases:");
int numOfTestCases = sc.nextInt();
for (int i = 0; i < numOfTestCases; i++) {
System.out.println("Enter value to check:");
int valueToCheck = sc.nextInt();
isDivisibleByPrime(valueToCheck);
}
Scanner sc=新扫描仪(System.in);
System.out.println(“输入测试用例数:”);
int numOfTestCases=sc.nextInt();
对于(int i=0;i
很明显,这里没有错误处理之类的东西,但由于您可能是新手,我确信这不是一个要求
下面是一个示例。首先在每个代码块周围使用大括号。这对每个人来说都更容易阅读
其次,规范中的要点是打印最大值(如果可以整除),因此
应该首先检查它是否先除以11,然后再除以3,然后再除以2
正确的代码如下:
static void isDivisibleByPrime(int n) {
if (n % 11 == 0) {
System.out.println("Eleven");
} else if (n % 3 == 0) {
System.out.println("Three");
} else if (n % 2 == 0) {
System.out.println("Two");
} else {
System.out.println("-1");
}
System.out.println();
}
参数n
不应该是您正在检查的数字吗?但是根据这个问题,有两个输入。您能详细解释一下吗?我的解释是您需要填写的方法(isDivisibleByPrime
)每个输入值调用一次,这意味着。我们必须检查n是否可以被2、3或11整除,对吗???但在这种情况下,多个测试用例会失败堆栈溢出问题:标题有什么问题?请提供一些上下文来回答。
static void isDivisibleByPrime(int n) {
if (n % 11 == 0) {
System.out.println("Eleven");
} else if (n % 3 == 0) {
System.out.println("Three");
} else if (n % 2 == 0) {
System.out.println("Two");
} else {
System.out.println("-1");
}
System.out.println();
}