Java 如何添加输入编号以消除重复的编号?
例如,我输入的数字是:10和15。第二个输入将被忽略,因为它已重复。所以总和是10+15-25。我该怎么做Java 如何添加输入编号以消除重复的编号?,java,input,sum,Java,Input,Sum,例如,我输入的数字是:10和15。第二个输入将被忽略,因为它已重复。所以总和是10+15-25。我该怎么做 public class MP2A { public static Scanner objScan = new Scanner (System.in); public static void main (String []args) { double [] dNum = new double[3]; System.out.prin
public class MP2A {
public static Scanner objScan = new Scanner (System.in);
public static void main (String []args)
{
double [] dNum = new double[3];
System.out.println("Input values for your array");
for (int iCtr=0; iCtr<dNum.length; iCtr++) {
dNum[iCtr] = objScan.nextDouble();
}
double sum = 0;
for (int iCtr=0; iCtr<dNum.length; iCtr++) {
for (int iCtr2=0; iCtr2<dNum.length-1; iCtr2++) {
if (dNum[iCtr2] == dNum[iCtr]) {
continue;
}
}
sum+=dNum[iCtr];
}
System.out.println(sum);
}
}
公共类MP2A{
公共静态扫描仪objScan=新扫描仪(System.in);
公共静态void main(字符串[]args)
{
double[]dNum=新的double[3];
System.out.println(“数组的输入值”);
对于(int iCtr=0;iCtr您应该检查该类。您可以在哈希集中输入任意数量的数字,但即使相同的数字插入多次,哈希集
也只包含每个唯一数字的一次出现
编辑:如果不允许使用HashSet
,可以这样做:使用ArrayList
(或者如果不允许使用ArrayList
,则使用大的int[]
)跟踪已添加的号码。对于每个新号码,请检查该号码是否已存在于列表中,并仅将其添加到列表(和总和)中如果它不在那里。您应该检查该类。您可以在哈希集中输入任意数量的数字,但即使相同的数字插入了多次,哈希集将只包含每个唯一数字的一次出现
编辑:如果不允许使用HashSet
,可以这样做:使用ArrayList
(或者如果不允许使用ArrayList
,则使用大的int[]
)跟踪已添加的号码。对于每个新号码,请检查该号码是否已存在于列表中,并仅将其添加到列表(和总和)中如果它不存在。将所有输入添加到一个集合中,然后为求和迭代集合
元素。将所有输入添加到集合
中,然后为求和迭代集合
元素。仅当数组不包含输入数字时才将其添加到数组中。这是假设的你还没有被介绍过(你已经提到你不知道集合)
import java.util.Scanner;
公共级MP2A{
公共静态扫描仪objScan=新扫描仪(System.in);
公共静态void main(字符串[]args){
double[]dNum=新的double[3];
System.out.println(“数组的输入值”);
对于(int i=0;i
仅当数组尚未包含输入数字时才将其添加到数组中。这是假设您尚未被介绍到(您已经提到您不了解集合)
import java.util.Scanner;
公共级MP2A{
公共静态扫描仪objScan=新扫描仪(System.in);
公共静态void main(字符串[]args){
double[]dNum=新的double[3];
System.out.println(“数组的输入值”);
对于(int i=0;i
想想如何用铅笔和纸解决问题:
接下一个号码
我们以前见过这个数字吗
如果有,请返回步骤1
如果没有,那么将该数字添加到我们已经看到的数字列表中
把这个数字加到总数上
返回到步骤1
现在看看你的代码如何匹配这个简单的算法。想想你将如何用铅笔和纸来解决这个问题:
接下一个号码
我们以前见过这个数字吗
如果有,请返回步骤1
如果没有,那么将该数字添加到我们已经看到的数字列表中
把这个数字加到总数上
返回到步骤1
现在看看你的代码是如何匹配这个简单算法的。检查当前数字是否等于上一个数字。如果是这样,就不要打印它。最简单的解决方案就是跟踪你添加的所有内容(例如:使用哈希集
)-如果以前没有添加过,请将其添加到累加器中。我已经尝试过这样做。但程序的要求是不打印。我必须添加输入数字,但忽略重复的数字。我尝试使用if语句。它确定重复的数字,但当我尝试计算总和时,所有内容仍在添加。您的内部循环it’没什么。想想看。好吧。我将尝试@Aasmund Eldhuset建议。非常感谢。检查当前数字是否等于上一个数字。如果是这样,就不要打印。简单的解决方案是跟踪您添加的所有内容(例如:使用哈希集
)-如果以前没有添加过,请将其添加到累加器中。我尝试过这样做。但程序的要求是不打印。我必须添加输入数字,但忽略重复的数字。我尝试使用if语句。它确定重复的数字,但当我尝试计算时
import java.util.Scanner;
public class MP2A {
public static Scanner objScan = new Scanner(System.in);
public static void main(String[] args) {
double[] dNum = new double[3];
System.out.println("Input values for your array");
for (int i = 0; i < dNum.length; i++) {
double num = objScan.nextDouble();
if (contains(dNum, num) == false) {
dNum[i] = num;
}
}
double sum = 0;
for (int i = 0; i < dNum.length; i++) {
sum += dNum[i];
}
System.out.println(sum);
}
public static boolean contains(double[] d, double num) {
for (int i = 0; i < d.length; i++) {
if (d[i] == num) {
return true;
}
}
return false;
}