Java - 如何使用最后一个数据添加数组的第一个值,依此类推

时间:2015-02-22 21:10:49

标签: java arrays logic

我需要在数组的位置0添加最后一个位置的值,位置1的值,倒数第二个等等......

示例:

1:8

2:6

3:4

4:2

5:1

6:7

7:3

结果: 11,13,5,2

数组的大小由用户在运行程序时声明,值也是如此。

package act4p1;
import java.io.*;
public class Act4p1 {

public static BufferedReader entrada = new BufferedReader (new InputStreamReader(System.in));
    public static void main(String[] args) throws IOException {
        int tam;

        System.out.println("Cantidad de los elementos del arreglo: ");
        tam = Integer.parseInt(entrada.readLine());
        int[] arreglo = new int [tam];

        System.out.println("Teclea los "+tam+" valores");

        for (int i = 0; i < arreglo.length; i++) {
             System.out.print(i+": ");
             arreglo[i] = Integer.parseInt(entrada.readLine());
        }

        //Code needed here

        System.out.print("\nElementos del arreglo: ");
        for (int x = 0; x < arreglo.length; x++) {
            System.out.print(arreglo[x] + ", ");
        }


    }

}

1 个答案:

答案 0 :(得分:0)

嗯,你可以用这样的功能:

public int[] sumFirstLastArray(int[] input)
{
    int inputSize=input.length; // length gives the array size
    int outputSize=(input.length+1)/2; //to get 1 more space if input is odd
    int[] output= new int[outputSize]; // initializes the result array

    for(int i=0;i<inputSize/2;i++)
    {
        output[i]=input[i]+input[inputSize-i-1];
        // inputSize-i-1 gives the ith last position of the array.
        // the -1 is necessary due to the array being from 0 to inputSize-1
    }

    if(inputSize%2==1) //check for odd input arrays
    {
        output[inputSize/2]=input[inputSize/2];
        //copy the middle element
    }

    return output;
}

这些评论解释了这个功能背后的逻辑。至于获取输入,它取决于您用于获取输入的内容。