我有一个包含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];
}
}
}
答案 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;
}
}
}
}