Sunteți pe pagina 1din 8

registrarse iniciar sesión recorrido ayuda Buscar Q&A

Preguntas Etiquetas Usuarios Medallas Sin responder Formular una pregunta

_
Stack Overflow en español es un sitio de Así es como funciona:
preguntas y respuestas para
programadores y profesionales de la
informática. Unete a ellos; toma menos de
un minuto:

Se vota a favor de las


Registrarse Cualquiera puede mejores respuestas, y estas
formular una Cualquiera puede suben a los primeros
pregunta responder puestos

Ayuda en resolver algoritmo mostrar cifras que se repiten - Java

formulada 11 meses atrás


Estimada comunidad, quisiera apoyo en resolver este algoritmo:
vista 1363 veces
4 Ingrese un número natural cualquiera, para mostrar las cifras que se repiten y la cantidad de veces
que estas se repiten. Ejemplo: activo 11 meses atrás

Ingrese un número natural cualquiera: 471757347


El numero 4: se repite 2 Veces Relacionados
El numero 7: se repite 4 Veces

1
He podido sacar el número mayor o menor pero solo los dos, en caso de tres o cuatro números
repetidos no llego a resolverlos. Espero su orientación para resolver este problema. Gracias. como puedo resolver un nullpointerexception java?

Este es el código que tengo hasta el momento: 0


Ayuda con colas, JAVA
public static void main(String[] args) {

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Scanner linea = new Scanner(System.in); -2
int n, digito, digito1, repetir;
System.out.print("Introduce un número entero: "); Ayuda con un ejercicio en java
n = linea.nextInt();
repetir = 0;
0
digito1 = 0;
do { ¿Cómo mostrar cada fase del algoritmo?
digito = n % 10;
if (digito > digito1) {
1
digito1 = digito; Ayuda con Java(POO)
repetir = 1;
} else {
0
if (digito == digito1) { algoritmo recursivo pilas java
repetir++;
}
} 2
n = n / 10;
Establecer Limite de una cifra determinada en un
} while (n != 0);
jtextbox en java
System.out.println("El numero " + digito1 + " se repite " + repetir + " veces");
}
0
Ayuda con funcion basica en Java
java

compartir mejorar esta pregunta editada el 17 jun. 16 a las 19:30 formulada el 17 jun. 16 a las 19:15 3
Para que sirve el siguiente algoritmo de java?

aldanux Max
4,977 2 10 35 40 7 0

Desconozco lo que pasa en este algoritmo de


1 Bienvenido. Por favor anexa el código que tienes. – MitsuG el 17 jun. 16 a las 19:16 división entre flotantes
Ya edite el mensaje, gracias por responder. – Max el 17 jun. 16 a las 19:22
Preguntas populares en la red
añade un comentario
Golf you an anagram for great good!

4 respuestas activas más antiguas votos


Did J.K. Rowling say that a gun would beat a
wand?

What is the most efficient method to write a


multiple choices story?
Si entiendo bien tu pregunta, lo que deseas es ver cuántas veces se repite cada dígito en un número
Understanding the definition of polynomially CPA

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Understanding the definition of polynomially CPA
natural cualquiera. (IND-CPA) security
2
Se me ocurre esta solución (no la más eficiente, pero funciona): Fill Inside of a Loop on Tile Map?

What is it called when something creates itself by


public static void main(String[] args) { itself or something is made by itself?
Scanner linea = new Scanner(System.in);
long n; How to split circles in 12 quadrants in PostGIS?
System.out.print("Introduce un número:\t");
How common is it in papers to contain copied
n = linea.nextLong();
paragraphs from previous papers?
String num = String.valueOf(n);
for(int d = 0; d < 10; d++) { Do defunct films formats really mean the pictures
int rep = 0; can never be seen?
for(int i = 0; i < num.length(); i++) {
How is the work done to push a planet over 1m
if(Integer.valueOf(String.valueOf(num.charAt(i))) == d) {
with 1N the same as pushing a feather over 1m
rep++; with 1N?
}
} Why is it so bad to optimize too early?
if(rep > 0) {
System.out.println( It's good for puzzling
String.format("El número %d se repite %d %s",
Have memtest86+ in the Installation disk menu
d, rep, (rep == 1 ? "vez" : "veces")) (along with "Try Ubuntu")
);
} How to draw circles on a line and rotate them
}
} why is the cost function of NN non-convex

What is the soft part of the palm called in


compartir mejorar esta respuesta respondida el 17 jun. 16 a las 20:41 English?

Need help on basics for growing herbs and


vegetables in pots
Barranka
How do DNS servers not get hijacked ?
1,050 4 25
If a professional acquaintance asks you to
forward their resume on to a hiring manager, how
Gracias por el apoyo, solo falta pulir un poco la salida, pero se entiende, gracias. – Max el 17 jun. 16 a las do you politely turn them down?
20:52
Can a US President and Vice President both be
añade un comentario impeached in one process?

Why does ISIS continue to do things to make their


"enemy" even more determined to go after them?

Why are LEDs on most embedded designs


No entiendo qué quieres hacer con el if: inverted?

2 if (digito > digito1) { What happens if you run WannaCry after


installing the necessary patches?

Eso serviría para buscar el dígito mayor, pero eso no tiene relevancia aquí. Parece que hubieras How to calculate present age in Years, months,
days format?
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
copiado código de algún problema distinto... days format?

En todo caso, debes almacenar en algún lado las veces que se repite cada dígito. Una manera
cómoda en este caso es un array. Por ejemplo:

public static void imprimirRepetidos(long number) {


int[] cont = new int[10]; // cuenta la cantidad de apariciones de cada digito
int digito;
while(number >0) {
digito = (int) (number % 10);
cont[digito]++;
number /= 10;
}
for(digito=0;digito<10;digito++) {
if(cont[digito]>1)
System.out.println("El digito " + digito + " se repite " + cont[digito]+ " veces");
}
}

Asegúrate de entender cada parte del código.

Otra tema, de terminología: no mezcles "número", "cifra" y "dígito". Cada una de las cifras que se
usan para representar un número en determinada base se llama "dígito" (puede ser decimal,
hexadecimal, binario, etc - en este caso, se supone decimal).

compartir mejorar esta respuesta respondida el 17 jun. 16 a las 20:13

leonbloy
1,968 2 12

Gracias pero el reto es hacerlo sin arreglos. puse el if porque estaba probando primero con los números
mayores, pero me quede ahi, solo contaba los mayores, pero agradezco la respuesta. – Max el 17 jun. 16 a
las 20:49

añade un comentario

Una alternativa es tratar el número como un string (obviamente validando antes que sea un número) y
con longitudNumero - longitudPrimerasOcurrencias se obtendría la cantidad de veces que se
2 repite. Te pongo un ejemplo:

Map<String, Integer> repeated = new LinkedHashMap<>();


open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
try(Scanner kb = new Scanner(System.in)) {
System.out.print("Ingrese un número: ");
// se asegura que sea un número
Integer number = Integer.parseInt(kb.next());
for(String n : String.valueOf(number).split("")) {
// si el mapa no contiene el número procede
if(!repeated.containsKey(n)) {
int numberLen = number.length();
int replacesLen = number.replace(n, "").length();
int ocurrences = (numberLen - replacesLen);
if(ocurrences > 1) {
repeated.put(n, ocurrences);
}
}
}
} catch(NumberFormatException e) {
System.out.println("No se ha ingresado un número");
System.exit(-1);
}
for(Map.Entry<String, Integer> entry : repeated.entrySet()) {
System.out.printf("\nEl número %s se repite %d veces",
entry.getKey(), entry.getValue());
}
System.out.println();

Salida:

Ingrese un número: 471757347

El número 4 se repite 2 veces


El número 7 se repite 4 veces

compartir mejorar esta respuesta respondida el 17 jun. 16 a las 20:36

MitsuG
3,511 3 21

Funciona gracias, un poco tedioso el código pero se entiende, es un reto sin usar arreglos y objetos, pero me
gusta tu código, gracias. – Max el 17 jun. 16 a las 20:51

Es un poco tedioso porque uso un try - catch y un Map para guardar las ocurrencias, pero el código
es sencillo en sí. Si tienes dudas acerca de ello, coméntalas y con gusto te explico. – MitsuG el 17 jun. 16 a
las 20:56

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
El que dió voto negativo, que me diga el por qué por favor. – MitsuG el 17 jun. 16 a las 22:03

Hay bastantes haters en esta comunidad – RoyalUp el 18 jun. 16 a las 16:58

añade un comentario

En este caso, un análisis del problema conduce a una solución sencilla:

0 Los digitos que se pueden repetir son 0,1,2,3,4,5,6,7,8,9

Se necesita para cada digito una variable que lleve el conteo de sus repeticiones. Por ejemplo:

int numeroRepeticionesDigito0 = 0;
//...
int numeroRepeticionesDigito9 = 0;

Ahora, veo que ya tenes la forma de obtener cada digito por separado. Solo resta verificar dentro del
ciclo que digito es el actual, e incrementar su variable en uno, lo cual se puede hacer con una
estructura de control switch:

switch (digito)
{
case 0: numeroRepeticionesDigito0++; break;
case 9: numeroRepeticionesDigito9++; break;
}

Y después que termine el ciclo mostrar el valor de cada una de las variables que llevan el total de
repeticiones. En este caso, como supongo que es una tarea, prefiero no mostrar el código completo,
pero la idea es esa, sin utilizar instrucciones avanzadas, nada mas una estructura de repeticion
(while) y una de control (switch). Para este tipo de problemas, te sugiero que analices el proceso
mental de como lo resolverías tu, y luego tratar de traducir ese proceso mental en código.

compartir mejorar esta respuesta editada el 17 jun. 16 a las 23:28 respondida el 17 jun. 16 a las 23:22

JYass
637 11

añade un comentario

Tu Respuesta
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Registrarse o iniciar sesión Publicar como invitado

Registrarse mediante Google Nombre

Registrarse mediante Facebook


Correo electrónico

requerido, pero nunca mostrado


Regístrate con email y contraseña

Publica Tu Respuesta

Al publicar tu respuesta, expresas tu conformidad con la política de privacidad y los términos de servicio.

¿No es la respuesta que buscas? Examina otras preguntas con la etiqueta java o formula tu propia
pregunta.
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
fuente de preguntas

sobre nosotros recorrido ayuda blog chat datos legales política de privacidad trabaja aquí información de publicidad móvil contacto comentarios

TECHNOLOGY LIFE / ARTS CULTURE / SCIENCE OTHER


RECREATION

Stack Overflow Geographic Information Code Review Photography English Language & MathOverflow Meta Stack Exchange
Systems Usage
Server Fault Magento Science Fiction & Mathematics Stack Apps
Electrical Engineering Fantasy Skeptics
Super User Signal Processing Cross Validated (stats) Area 51
Android Enthusiasts Graphic Design Mi Yodeya (Judaism)
Web Applications Raspberry Pi Theoretical Computer Stack Overflow Talent
Information Security Movies & TV Travel Science
Ask Ubuntu Programming Puzzles &
Database Code Golf Music: Practice & Theory Christianity Physics
Webmasters Administrators
more (7) Seasoned Advice English Language Chemistry
Game Development Drupal Answers (cooking) Learners
Biology
TeX - LaTeX SharePoint Home Improvement Japanese Language
Computer Science
Software Engineering User Experience Personal Finance & Arqade (gaming)
Money Philosophy
Unix & Linux Mathematica Bicycles
Academia more (3)
Ask Different (Apple) Salesforce Role-playing Games
WordPress more (8)
ExpressionEngine® Anime & Manga
Development Answers
Motor Vehicle
Cryptography Maintenance & Repair

more (17)

diseño/logotipo del sitio © 2017 Stack Exchange Inc; contribuciones de los usuarios bajo licencia cc by-sa 3.0 con atribución requerida
rev 2017.5.23.26009

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com

S-ar putea să vă placă și