gpt4 book ai didi

java - 如何在我的代码中使用不超过 3 个不同的数字文字?

转载 作者:行者123 更新时间:2023-11-30 09:59:50 24 4
gpt4 key购买 nike

对于我的作业,它说不要使用超过 3 个不同的数字文字,但在我的代码中我只使用 double 和 int 所以我试图弄清楚我使用了太多的东西或者需要删除或使用的东西较少的。当我运行它时它工作正常但是检查家庭作业的机器人说它使用了超过 3 个文字。任何帮助,将不胜感激。谢谢

public class ArrayStatistics {
public static void main(String[] args) {
int[] testValues = { 2, 4, 4, 4, 5, 5, 7, 9 };
System.out.println("This should be 5: " + ArrayStatistics.mean(testValues));
System.out.println("This should be 4.5: " + ArrayStatistics.median(testValues));
System.out.println("This should be 4: " + ArrayStatistics.mode(testValues));
System.out.println("This should be 2: " + ArrayStatistics.pstddev(testValues));
}
public static double mean(int[] data) {
int sum = 0;
for(int i=0; i< data.length; i++)
sum = sum + data[i];
double average = sum/ data.length;
return average; // dummy return statement
}
public static double median(int[] data) {
double median = 0;
int allElements = data.length;
if (allElements % 2 ==0) {
int sumOfMiddleElements = data[allElements/2] + data[allElements /2-1];
median = (double)(sumOfMiddleElements) / 2;
}
else{
median = (double)data[data.length / 2];
}
return median;
}
public static int mode(int[] data) {
int mode = 0;
double maxCount = 0;

for(int i =0; i< data.length; i++) {
int count = 0;
for(int k = 0; k < data.length; k++){
if(data[k] == data[i]){
count++;
}
}
if(count > maxCount) {
mode = data[i];
maxCount = count;
}
}

return mode; // dummy return statement
}
public static double pstddev(int[] data) {
double mean = mean(data);
double n = data.length;
double dv = 0;
for (double d: data) {
double dm = d - mean;
dv =+ dm * dm;
}
return Math.sqrt(dv / n);
}

}

最佳答案

有各种方法可以避免数字文字。我脑海中浮现出几个:

  • 您可以将所有内容都作为字符串文字,然后使用 Integer.parseInt 将其解析为 int,例如Integer.parseInt("0"), Integer.parseInt("1")
  • 你可以定义一个方法 int succ(int a) { return a + 1; },那么你只需要使用 2 个文字:0succ(0) 而不是 1(尽管你使用 1succ 的定义中),succ(succ(0)) 而不是 2 等

    事实上,您可以通过声明一个(静态)类成员并将其保持未初始化来完全避免使用零文字;或 Integer.MAX_VALUE - Integer.MAX_VALUE。您可以使用 Integer.MIN_VALUE - Integer.MAX_VALUE 的结果来避免 1 文字。

我相信还有其他方法。但多么奇怪的要求。

关于java - 如何在我的代码中使用不超过 3 个不同的数字文字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58564601/

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