Conversão de Decimal para base 9

3 respostas
java
B

Ola não consigo mostrar o mod desta conta, ja tentei alguma emplementações porem não obtive muito sucesso:

se eu colocar o valor 10 ele deve retornar 11, porem só retorna 1. queria saber como faço a implementação para trazar o mod tb para o resultado ser 11.

package main;

import java.util.Scanner;

import entidade.Conversor;
public class Principal {

public static void main(String[] args) {
	Scanner sc = new Scanner(System.in);
	Conversor n = new Conversor();
	System.out.println("Entre com o numero: ");
	int numero = sc.nextInt();
	n.decimalParaNonario(numero);
	
	System.out.println(n.numero);
	
	sc.close();
}

}

package entidade;

public class Conversor {

public int numero;

public double decimalParaNonario(double numero) {
	return this.numero += (numero / 9) % 9;
}

}

3 Respostas

pmlm

Estás a dividir por 9 (divisão inteira dá 1) e depois a obter o resto da divisão por 9 de 1 (que é 1). Necessitas aí de passos intermédios.

E o teu resultado não pode ser construido com soma de números, tem de ser concatenação de strings senão não dá o resultado que pretendes.

B

Fia uma nova implementação, porem da maneira que eu fiz não é completa, pois só mostra o resultado de 1 a 80. Do numero 81 em diante o resultado é imcompleto.
Não consegui implementar um toString.

package main;

import java.util.Scanner;

import entidade.Conversor;
public class Principal {

public static void main(String[] args) {
	Scanner sc = new Scanner(System.in);
	Conversor n = new Conversor();
	System.out.println("Entre com o numero de 1 a 80 para conversão base 9");
	int numero = sc.nextInt();
	n.decimalParaNonario(numero);
	
	System.out.printf("Resultado: %d%d",n.decimalParaNonarioMod(numero), n.decimalParaNonario(numero));
	
	sc.close();
}

}

package entidade;

public class Conversor {

public int numero;
public int mod;

public int decimalParaNonario(int numero) {
	
	int conta = 0;
	conta += (numero % 9);
	return this.numero = conta; 
}

public int decimalParaNonarioMod(int numero) {
	int conta = 0;
	conta += (numero / 9);
	this.mod += conta % 9;
	return this.mod;
}

}

pmlm

Dois pontos:

  • ja disse anteriormente, não podes simplesmente somar numeros, tens de ir concatenando, ou usando strings, ou multiplicando por multiplos de 10.
  • Tens de ir fazendo divisoes (e restos) sucessivamente (recursivamente) para poderes converter qualquer valor e não apenas até 80
Criado 23 de abril de 2020
Ultima resposta 24 de abr. de 2020
Respostas 3
Participantes 2