【问题标题】:how can i check for one value, multiple values satisfy or not and if they do record it? [closed]我如何检查一个值,多个值是否满足以及它们是否记录? [关闭]
【发布时间】:2019-06-23 10:25:55
【问题描述】:

假设有两个数组:

a = [2, 4]; b = [16, 48, 96];

第三个数组是:

c = [4, 8, 12];

我必须检查,对于c[0]ab 的每一项是否都被划分然后计算它。

否则,请不要再使用其他 c 值。

【问题讨论】:

  • 那么你想将a和b中的每一项除以c中的每一项吗?
  • 是的,如果它确实划分了 a 和 b 的每个项目,那么只计算
  • 我尝试了循环但无法弄清楚..:(
  • 您的意思是ab 中的任何项目是否可以被c 中的项目整除(即c[0] = 4,并且可以被4 整除的是a[1], b[0], b[1], b[2])?或者您的意思是检查数组b 中的任何值除以数组a 中的任何项目是否等于c 中的项目(即c[0] == b[0] / a[1])?或者是其他东西?您能否为您提供的三个数组添加您的预期输出?
  • 实际上我必须检查 c 中的项目,其中 a 中的每个项目都是一个因素,b 中的每个项目都被划分...所以如果,对于 c[0],c[0] %a[0]==0 && b[0]%c[0]==0 那么条件就满足了,我只需要取满足上述条件的 c 项。

标签: java loops for-loop while-loop conditional-statements


【解决方案1】:

如果我没有理解错,这就是你想要的。

public static void main(String[] args){
    int a [] = {2,4};
    int b [] = {16,48,96};
    int c [] = {4,8,12};
    int result [] = {0,0,0};
    for(int i=0;i<c.length;i++){
        boolean check = true;

        for(int j=0;j<a.length;j++){
            if(c[i]%a[j]!=0){
                check = false;
                break;
            }
        }
        for(int k=0;k<b.length;k++){
            if(c[i]%b[k]!=0){
                check = false;
                break;
            }
        }
        if(check){
            result[i] = c[i];
        }
    }
}

结果数组包含来自数组 c 的元素,该数组被划分为所有 a 和 b 数组的元素。

【讨论】:

  • 是的......我认为它应该可以正常工作......唯一的区别是在第二个循环中,if 条件应该是 if(b[k] % c[i] != 0)。 ..我不认为布尔值是一个解决方案...非常感谢..真的很感激。
【解决方案2】:

你在寻找这样的东西吗?

boolean dividesEveryItem = true;
for (int i = 0; i < a.length) {
    if (a[i] % c[0] != 0) {
        dividesEveryItem = false;
        break;
    }
}

for (int i = 0; i < b.length) {
    if (b[i] % c[0] != 0) {
        dividesEveryItem = false;
        break;
    }
}

if (dividesEveryItem) {
    // Count
}

【讨论】:

  • 明白你的意思...使用布尔值我可以很容易地做到这一点...谢谢...:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-25
  • 1970-01-01
  • 2021-10-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多