Escreva um programa em Java que leia um valor X. Coloque este valor na primeira posição do vetor de
tamanho 100. Seu programa deve preencher cada posição subsequente do vetor com metade do
valor armazenado na posição anterior, conforme o exemplo abaixo. Ao final exiba o vetor.
Exemplo:
Entrada - 200.000
Posição 1 – 100.000
Posição 2 – 50.000
Posição 3 – 25.000
...
Posição 99 – valor da posição 98 / 2
Soluções para a tarefa
Resposta:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
double vetor[] = new double [100];
double resultados[] = new double [100];
double valor;
System.out.print("Insira um valor para o valor de entrada: ");
valor = sc.nextDouble();
vetor[0] = valor;
for (int i = 1; i < vetor.length; i++) {
vetor[i] = vetor[i-1]/2;
resultados[i] = vetor[i];
}
System.out.println("Valor de entrada: " + valor);
for (int j = 1; j < 100; j++) {
System.out.println("Valor na posição " + j + ": " + resultados[j]);
}
}
Explicação:
Eu criei dois vetores, um para armazenar o vetor que vamos dividir e outro pra apenas mostrar os resultados. Em seguida, eu criei uma variável "valor" e pedi que o usuário desse um valor pra ela armazenar.
Esse é o meu valor de entrada, então será nosso vetor[0].
Feito isso, eu criei um for que começasse em 1 e, dentro dele, eu mandei que o vetor na mesma posição de i fosse igual ao vetor anterior dividido por 2.
Por exemplo:
Meu valor de entrada (vetor[0]) é 50
No for, ele já inicia em 1, então será: vetor[1] = vetor[0]/2
E assim será com todos os outros. Depois disso, eu pedi que ele armazenasse cada um desses valores no meu vetor de resultados
Assim que ele acabasse toda essa repetição, o meu segundo for servirá apenas para que ele vá me mostrando os resultados