gpt4 book ai didi

java - 练习自由 react (更新)

转载 作者:太空宇宙 更新时间:2023-11-04 10:51:35 25 4
gpt4 key购买 nike

为什么B部分会出现错误?

说明:以下 Numbers 类将用于分析和检索数字集。

public class Numbers
{
/** @param nums is a positive non-decimal value
* Precondition: nums>=0
* @return false if the sum of digit divisors of num is odd
* @return true if the sum of the digit divisors of num is even
*/
public static boolean isSilly(int value)
{
/* to be implemented in part(a) */
}

/* @param count is a positive non-decimal value
* Precondition: count >0
* @return an array containing count Silly numbers
*/
public static int[] getSomeSillyNumbers(int count)
{
*/ to be implemented in part(b) */
}
// There may be varialbes/fields,constructors, and methods that are not shown.
}

A.编写 Numbers 方法 isSilly(),如下所示。 isSilly() 将是一个整数并确定该整数是否为 Silly。

傻数是指除数之和为偶数的任何数字。总和必须大于零。

调用 isSilly(12) 将返回 false,因为 12 的数字除数和为 3 - [1,2],为奇数。

/** @param num is a positive non-decimal value
* Precondition: value >=0
* @return false if the sum of digit divisor of num is odd
@return true if the sum of the digit divisor of the num is even
*/

我为A做了什么

public static boolean isSilly(int value)
{
int sum = 0;
while (value > 0)
{
sum = sum + value % 10;
value = value / 10;
}
if (sum%2==0)
return true;
else
return false;
}

B.编写 Numbers 方法 getSomeSillyNumbers(),如下所示。getSomeSillyNumbers() 将接收要返回的 Silly Numbers 数量。

调用 getSomeSillyNumbers(3) 将返回 [2,4,6]。

您必须从 a 部分调用该方法,假设无论您编写什么内容该方法都按指定方式工作。

/* @param count is a positive non-decimal value
* Precondition: stop>0
* @return an array containing count Silly numbers
*/

我为B做了什么

public static int[] getSomeSillyNumbers(int count)
{ int[] getSomeSillyNumbers = new int[count];
while(count!=0)
{

if(isSilly(count))
{
int i=0;
getSomeSillyNumbers[i]=count;
i++;

}

count --;
}
System.out.println(Arrays.toString(getSomeSillyNumbers));
return getSomeSillyNumbers;
}

更新

我的整个代码是这样的:

import java.util.Arrays;
public class Numbers
{
public static boolean isSilly(int value)
{
int sum = 0;
while (value > 0)
{
sum = sum + value % 10;
value = value / 10;
}
if (sum%2==0)
return true;
else
return false;
}

public static int[] getSomeSillyNumbers(int count)
{ int[] getSomeSillyNumbers = new int[count];
int i=0;
while(count!=0)
{
if(isSilly(count))
{
getSomeSillyNumbers[i]=count;
i++;
}
count--;
}
System.out.println(Arrays.toString(getSomeSillyNumbers));
return getSomeSillyNumbers;
}
}

与运行者:

    import java.util.Arrays;
public class NumbersRunner
{
public static void main(String[] args)
{
Numbers runner = new Numbers();
runner.isSilly(12);
runner.isSilly(15);
runner.isSilly(26);
runner.isSilly(8);
runner.isSilly(1234);
runner.getSomeSillyNumbers(3);
runner.getSomeSillyNumbers(15);
}
}

我得到:

[2, 0, 0]
[15, 13, 11, 8, 6, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0]

什么时候我应该得到

[2,4,6]
[2,4,6,8,11,15,20,22,24,26,28,32,33,40,42]

最佳答案

B 部分存在以下错误:

  • 您每次都会在循环内的 int[] getSomeSillyNumbers = new int[count]; 行中重新创建 int[] getSomeSillyNumbers。因此,它始终只有 1 个值,即 count 的最新值。 要解决这个问题,请在循环外创建 getSomeSillyNumbers 数组,即在 while 循环之前放置行 int[] getSomeSillyNumbers = new int[count];
  • i 的声明位于 while 循环中的 int i=0; 行中。因此它每次都会重新创建并使用 0 进行初始化。 要解决这个问题,请将 int i=0; 行放在 while 循环之前。

注意: 我假设返回行中的 getSomeSillyNumbers(); 是另一种方法。如果不是,则使用不当。

关于java - 练习自由 react (更新),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47786019/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com