有三个数组都是int型的(而且元素的个数都是偶数)
a[]={1,2,3,4,5,6};
b[]={2,2,1,4,5,5,6,7};
c[]={3,2,4,1};
怎么得到一个数组???
三个数组中 偶数项(是位置,不是下标)的值 相等的话,它们的前面一项就相加,再放到数组d中;
如果不相等的话,就把他们直接放到数组中!按照以上的规定,应该得到
d[]={3,2,4,4,5,6,5,5,6,7}
a[]={1,2,3,4,5,6};
b[]={2,2,1,4,5,5,6,7};
c[]={3,2,4,1};
怎么得到一个数组???
三个数组中 偶数项(是位置,不是下标)的值 相等的话,它们的前面一项就相加,再放到数组d中;
如果不相等的话,就把他们直接放到数组中!按照以上的规定,应该得到
d[]={3,2,4,4,5,6,5,5,6,7}
d[]={3,2,4,4,5,6,5,5,6,7}
这里应该是
d[]={6,2,4,4,5,6,5,5,6,7}
详细解析:因为a[1]==b[1]==c[1]=2,所以需要a[0]+b[0]+c[0]=6;得到d[]的部分元素为[6,2],而a[3]==b[3]=4,所以需要a[2]+b[2]=4,再放入d[]中,得到d[]的部分元素为[4,4],现在的偶数位的元素因为没有相等的了,就全部放入d[]中!程序应该是怎样的呢?
int i = 1;
for(; i < a.length, i < b.length, i < c.length;i += 2) {
if(a[i] == b[i])
if(a[i] == c[i]) {
d.add(new Integer(a[i-1] + b[i-1] + c[i-1]));
d.add(new Integer(a[i]));
} else {
d.add(new Integer(a[i-1] + b[i-1]));
d.add(new Integer(a[i]));
}
}
for(int j = i + 1; j < a.length; j++)
d.add(new Integer(a[j]));
for(int j = i + 1; j < b.length; j++)
d.add(new Integer(b[j]));
for(int j = i + 1; j < c.length; j++)
d.add(new Integer(c[j]));int[] d2 = new int[d.size()];
for(int j = 0; j < d.size(); j++)
d2[j] = ((Integer)d.get(j)).intValue();
详细解析:因为a[1]==b[1]==c[1]=2,所以需要a[0]+b[0]+c[0]=6;得到d[]的部分元素为[6,2],而a[3]==b[3]=4,所以需要a[2]+b[2]=4,再放入d[]中,得到d[]的部分元素为[4,4],现在的偶数位的元素因为没有相等的了,就和它前面的一位一起全部放入d[]中!也就是说这些数据是两个两个一组的了,
按照你的程序,得到的结果是[6,2,4,4,5,6]
而按照以上的规定,应该得到
d[]={6,2,4,4,5,6,5,5,6,7}““是不是不需要处理a[i] != c[i]的情况呢???””!
要啊!这三个数组中,(两个数为一组的)只要偶数位的值不同就该数和它的前一位的数直接放在d[]中,如果偶数位的值相同就每个数组中该数的前一位相加,把结果与该数放在d[]中!