[RESOLVIDO] Ajuda programa com vetores

3 respostas
M

Pessoal, boa noite! Estou no segundo semestre de Sistemas de Informação. Sou novo por aqui acabei de me cadastrar pois estou aprendendo Java mas sem a parte gráfica, e tenho algumas dúvidas e acho que por aqui podem me ajudar. Tenho conhecimento da linguagem C, mas aprendi vetores apenas agora na linguagem Java e estou com um pouco de dificuldade em alguns exercícios.. Vcs podem me ajudar? Eu fiz aqui mas não deu certo.

Exercício 1

Faça um programa que receba um número inteiro N (maior que 0) e exiba a sequência de números resultantes a partir da seguinte regra: se N for ímpar, multiplicar N por 3 e somar 1; se N for par, dividir N por 2. O número obtido é um novo N. Este procedimento deverá ser repetido até que N seja igual a 1. Exemplo: N = 17  sequência gerada: 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1. Deverá ser criada uma função, que receberá N como parâmetro e exibirá toda a sequência.

Eu fiz esse aqui mas não rodou .. Alguém ai pode me ajudar a entender o que fiz de errado ?

package rotinas_16_8;

import java.util.*;

public class Exercicio1 {
	
	public static void main(String[] args) {
		int n;
		Scanner ent = new Scanner (System.in);
		
		do {
			System.out.print("Digite um valor maior que 0: ");
			n = ent.nextInt();			
		} while (n <= 0);
		
		System.out.println("Resultado: " + novoNumero (n));
		
	}
	
	public static int novoNumero (int x) {
		int i = 0;
		int[] nros = new int [15];
		while (x != 1){
			if (x % 2 == 0){
				x = (x / 2);
			}
			else{
				x = ((x * 3) + 1);
			}
			nros [i] = x;
			i++;
		}
			return nros [15];
	}
}

3 Respostas

romarcio

Já que você é novo no forum, seja bem vindo.
Quando postamos código aqui, usamos a tag CODE para que o código fique mais legivel, assim:public static void main(String[] args){...}

Para fazer isso, edite seu post e coloque o código dentro da tag CODE, tem um botão chamado Code no editor de texto, use ele.

romarcio

No enunciado do exercício não fala nada que você deve usar vetor. Tem que usar mesmo ou você acho que precisa usar para resolver?

Se não precisa usar é só modificar um pouco o código do método novoNumero().

public static int novoNumero(int x) { while (x != 1) { if (x % 2 == 0) { x = (x / 2); } else { x = ((x * 3) + 1); } System.out.println("Valor: " + x); } return x; }

Se precisar, dai se usar vetor, Array no java, vai dar um pouco mais de trabalho. Array em java não é dinamico, então não tem como saber o tamanho do array para inicia-lo. Você vai precisar 1° resolver o problema para então saber qual tamanho usar e então depois refazer as regra para adicionar no array.

M

valeu deu certo aqui achei que precisava de vetor pq a gente ta aprendendo vetor mas deu certo assim

Criado 17 de agosto de 2011
Ultima resposta 18 de ago. de 2011
Respostas 3
Participantes 2