4

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];
    }
  }
}
4

5 に答える 5

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ので、その追加の変数を削除できます。

于 2012-10-15T15:06:18.683 に答える
2

このループを使用すると、要素番号はになりますi+1

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

Whileループ-

   int i=0,k=0;
   while(k<1768; ) {
        System.out.println(x[i]+" - "+k);
        i++,k+=x[i];
       }
于 2012-10-15T14:56:41.467 に答える
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++;
        }
于 2012-10-15T15:08:21.997 に答える
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")

}
于 2012-10-15T15:01:35.440 に答える
-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; 
            }
    }
  }
}
于 2012-10-15T14:56:16.147 に答える