当前位置: 首页 > 知识库问答 >
问题:

如何检查一个数字是否与某个数字相乘,但却与某个数字相加

邢鸿博
2023-03-14

所以我一直在尝试制作某种计算器工具。其中一个功能是检查一个数字的因子是否与某个数相乘,但同时又与另一个数相乘。这有助于分解三项式。我找到了原因,但我不知道如何继续。这就是我目前所拥有的

public static void MA() {
     int sum = 0;
     int product = 0;
     ArrayList<Integer> Factors = new ArrayList<Integer>();

     
     
     System.out.println("Enter the sum of the number");
     sum = sc.nextInt();
     System.out.println("Enter the number it should multiply to");
     product = sc.nextInt();

if(product < 0){
  for(int i = product; i <= Math.abs(product); ++i) {

      // skips the iteration for i = 0
      if(i == 0) {
        continue;
      }
      else {
        if (product % i == 0) {
          Factors.add(i);
        }
}
    }
  }
  else{
    for (int i = 1; i <= product; ++i) {
  
      // if number is divided by i
      // i is the factor
      if (product % i == 0) {
        Factors.add(i);
      }
    }
  }  

  System.out.println(Factors);
   }

请记住,我的程序的架构是调用所有其他函数的主类。

示例:X^2 9x 20=(x 5)(x 4)

4*5 = 20 4 5 = 9

共有1个答案

盖嘉庆
2023-03-14

你的问题可以简明扼要地表达如下:

给定一个列表

一个简单的解决方案是:

List<Integer> factors = new ArrayList<>(); // populated elsewhere
int sum = ?; // whatever
Integer a = null;
Integer b = null;

outer:
for (int i = 0; i < factors.size() - 1; i++) {
    for (int j = i + 1; j < factors.size(); j++) {
        if (factors.get(i) + factors.get(j) == sum) {
            a = factors.get(i);
            b = factors.get(j);
            break outer;
        }
    }
}

如果a和b不为空,则找到一对求和为sum的。

 类似资料:
  • 问题内容: 我正在使用AndEngine将精灵添加到屏幕上,并使用movemodifier方法遇到。 我有两个整数MaxDuration和MinDuration; 我想要做的是当用户达到一定增量的分数时。 例如,当用户达到20(整数改变)时,用户达到40(整数改变)。因此,基本上是20分,每次得分遇到一个20分之一的数字,即整数的变化。我希望这是有道理的。 有什么方法或方法可以做到这一点吗?我有一

  • 嗨,我正在尝试解决Udemy练习:编写一个名为hasSharedDigit的方法,其中包含int类型的两个参数。 每个数字应在10(含)-99(含)之间。如果其中一个数字不在范围内,则该方法应返回false。 如果两个数字中都有数字,例如12和23中的2,则该方法应返回true;否则,该方法应返回false。 我一直在得到真实,而有共享数字(9,99)我无法发现为什么.. }

  • 我想知道如何检查后三个数字如果有相同的值,例如: 这条路对吗? 谢谢你的帮助,

  • rank ▲ ✰ vote url 41 487 108 705 url 检查一个字符串是否是一个数字 如果一个字符串可以被看做一个数字那么有什么好的方法可以检测出来? 我能想到的方法: def is_number(s): try: float(s) return True except ValueError: return Fals

  • 有人请解释一下。为什么下面的程序产生16个?

  • 例如,243是3的完美幂,因为243=3^5。 我以前一直在使用,我认为它工作得很好,但后来我用上面的示例尝试了它,由于浮点运算,它实际上返回了4.99999999999。所以它只适用于非常小的数字,我发现不到大约100个。 我想我可以用一个循环来重复乘法。。。i、 将i设置为3,然后设置为9,然后设置为27,然后设置为81,然后设置为243,这等于目标值,所以我们知道这是一个完美的幂。如果它达到