坚持while循环。进行中

时间:2012-10-15 14:50:00

标签: java processing

我有一个包含100个数字的数组,我只给出了数组偶数值。如何打印出我必须添加的数组元素以获得总和<使用WHILE LOOP比1768?以下是我到目前为止的情况,我被困住了......事先感谢你的帮助

void setup() {

  int[] x = new int[100];
  int i=0;
  int sum=0;

  for(i=0; i<100; i++) {
    if (i%2==0) {
      x[i]=i;
      sum+=x[i];
    }
  }
}

5 个答案:

答案 0 :(得分:2)

您可以使用此循环,元素编号为i+1

       for(int i=0,k=0; k<1768; i++,k+=x[i]) {
        System.out.println(x[i]+" - "+k);
       }

while loop -

   int i=0,k=0;
   while(k<1768; ) {
        System.out.println(x[i]+" - "+k);
        i++,k+=x[i];
       }

答案 1 :(得分:2)

 void setup() {
     int i = 0;
     int sum = 0;
     int counter = 0;

     while (sum < 1768) {
         sum += i;
         i += 2;
         counter++;
     }

     System.out.println(counter);
 }

您从偶数索引0开始。然后使用i += 2跳过奇数 如果元素数量限制为100,请将i < 200添加到while条件:

while (sum < 1768 && i < 200)

100个偶数的数组将包含0到200之间的数字。

变量counter将包含执行的添加次数。它的值将等于i / 2,因此您可以删除该附加变量。

答案 2 :(得分:2)

您正在跳过数组中的索引。您只是填充其他所有“插槽” 此外,使用while循环检查最大值可能更容易(1728)

        int[] x = new int[100];
        int i = 0;
        int sum = 0;
        int max = 1728;

        while (sum < max && i < 100)
        {
            x[i] = i*2;
            if ((x[i] + sum) < max)
            {
                sum += x[i];
            }
            i++;
        }

答案 3 :(得分:1)

void setup() {

  int[] x = new int[100];
  int maxValue = 1768;
  int i;
  int sum=0;

  while(sum<maxValue) {
    if (i%2==0) {
      x[i]=i;
      sum+=x[i];
      i++;
    }
  }

   System.out.println(i+" Elements needed")

}

答案 4 :(得分:-1)

以下是代码:

void setup() {

  int[] x = new int[100];
  int i=0;
  int sum=0;

  for(i=0; i<100; i++) {
    if (i%2==0) {
      sum += i;
            if(sum<1768){

                 num +=1; 
            }
    }
  }
}