Autor
|
Tema: Tengo una duda de como determinar los digitos de un número (Leído 35,565 veces)
|
Felipe_Henriquez
Desconectado
Mensajes: 25
|
Buenas a los que leen este post, y como dice el asunto del post. Tengo una duda con respecto a como determinar una cantidad x de dígitos de cualquier numero, no sé como hacer un programa que lea los dígitos de cualquier número. Ejemplo supongamos que escribo en el programa el numero 11231415 y que me diga cuantos dígitos tiene, pasa que estudiando el libro de programación (C/C++ Java Deitel y Deitel) , salen muchos ejercicios de esa forma. Sin ir mas allá tengo un problema de transformar números binarios a decimales, lo podría hacer perfectamente, si el enunciado del problema digiera un número de 6 dígitos o un número de dígitos estándar, pero pasa que el enunciado del problema es para un número de cualquier longitud, no sé si me explico bien.
Voy en el capítulo 3 y hasta el momento tengo las siguientes herramientas, o lo visto en el libro hasta ahora, if else, y bucle while, sólo puedo usar esas dos herramientas. Sí me pudieran explicar como contar los dígitos de un número cualquiera introducido, estaría muy agradecido.
PD: He buscado en google pero no aparece como determinar los dígitos de un número cualquiera solo con estas dos herramientas y es lo qué se me pide en el libro y no sé como hacerlo.
Un cordial Saludo Gracias.
|
|
|
En línea
|
|
|
|
|
Alien-Z
Desconectado
Mensajes: 177
C++ Programmer
|
Me interesa bastante el problema que has planteado para practicar, intentaré resolverlo y si lo consigo lo posteo; asi que si no lo he entendido mal quieres leer la cantidad de números que introduce el usuario usando solo "if else" y "while".
Saludos.
|
|
« Última modificación: 17 Agosto 2011, 01:07 am por Alien-Z »
|
En línea
|
|
|
|
Felipe_Henriquez
Desconectado
Mensajes: 25
|
ハセヲ Muchas gracias por darme el link satisface en cierta manera el problema, pero aun no llegaba a funciones oficialmente en el libro si que ni idea tenia de esta función.
Allen-Z quería saber como saber los dígitos longitud de caracteres de un número cualquiera solo con if else, while, por ejemplo si introduzco 40.000 me diga 5 dígitos, o introducir 12.000.000 y me diga 8 dígitos y nada de arreglos ni punteros ni funciones extras solo con <stdio.h> . Sólo con esas cosas, pero if else, while, <stdio.h> por lo que me parece es muy difícil. Gracias Allen-Z por darte la molestia de contestar e intentar realizar el ejercicio. Un Abrazo! Saludos!
|
|
|
En línea
|
|
|
|
тαптяα
Desconectado
Mensajes: 1.151
Sic utere tuo ut alienum non laeda
|
ハセヲ Muchas gracias por darme el link satisface en cierta manera el problema, pero aun no llegaba a funciones oficialmente en el libro si que ni idea tenia de esta función.
Allen-Z quería saber como saber los dígitos longitud de caracteres de un número cualquiera solo con if else, while, por ejemplo si introduzco 40.000 me diga 5 dígitos, o introducir 12.000.000 y me diga 8 dígitos y nada de arreglos ni punteros ni funciones extras solo con <stdio.h> . Sólo con esas cosas, pero if else, while, <stdio.h> por lo que me parece es muy difícil. Gracias Allen-Z por darte la molestia de contestar e intentar realizar el ejercicio. Un Abrazo! Saludos!
De nada.
|
|
« Última modificación: 17 Agosto 2011, 01:58 am por ハセヲ, »
|
En línea
|
|
|
|
Alien-Z
Desconectado
Mensajes: 177
C++ Programmer
|
No creo que con solo ciclos sin nada de funciones, puedas determinar la longitud de la cadena. Por lo que ha comentado es un problema que le plantea un libro, asi que lo más seguro es que tenga solución. Allen-Z quería saber como saber los dígitos longitud de caracteres de un número cualquiera solo con if else, while, por ejemplo si introduzco 40.000 me diga 5 dígitos, o introducir 12.000.000 y me diga 8 dígitos y nada de arreglos ni punteros ni funciones extras solo con <stdio.h> . Sólo con esas cosas, pero if else, while, <stdio.h> por lo que me parece es muy difícil. Gracias Allen-Z por darte la molestia de contestar e intentar realizar el ejercicio. Un Abrazo! Saludos! No es molestia para nada, yo también entré en el mundo de la programación hace poco y me interesa bastante intentar resolverlo para poner en práctica lo que he aprendido (aunque yo voy terminando con las clases y los objetos). Lo que hace complicado el problema es que no hay una cifra máxima, igual puede tener un dígito que 20, y tan solo puedes usar "if else" y "while", asi que si consigo darle solución lo comento. Saludos!
|
|
« Última modificación: 17 Agosto 2011, 01:29 am por Alien-Z »
|
En línea
|
|
|
|
Felipe_Henriquez
Desconectado
Mensajes: 25
|
Gracias por responder Allen si fuera un numero determinado de dígitos no tengo problemas en hacerlo pero con no se sabe de cuantos dígitos introduce el usuario ahí esta el pero Gracias por el esfuerzo Saludo!
|
|
|
En línea
|
|
|
|
criskapunk
Desconectado
Mensajes: 277
|
Si lo que querés es convertir un número de decimal a binario no hace falta saber la cantidad de dígitos, porque el mecanismo es siempre el mismo Por ejemplo, tomamos el número 133. Hay que ir haciendo divisiones enteras sucesivas por 2 y guardar el resto. Entonces: 133/2 = 66 Resto 1 66/2 = 33 Resto 0 33/2 = 16 Resto 1 16/2 = 8 Resto 0 8/2 = 4 Resto 0 4/2 = 2 Resto 0 2/2 = 1 Resto 0 1/2 = 0 Resto 1 Fijate el último caso. Tenés que ir haciendo la división hasta que la división entre un número y 2 sea cero. Ese va a ser el último resto que tenés que guardar (Esa sería la condición de corte de un bucle while, por ejemplo). Ahora sólo queda leer el número de abajo hacia arriba, quedando 10000101 = 133. Te toca traducirlo a C. Igualmente estoy tratando de resolver lo de obtener la cantidad de dígitos de un número sin usar funciones. Esta bueno el problema Un saludo. Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.
|
|
« Última modificación: 17 Agosto 2011, 01:46 am por R0LFback »
|
En línea
|
|
|
|
bigfu
|
Si lo que quieres es saber el número de dígitos que tiene un número cualquiera, lo único que tienes que hacer es ir dividiendo por 10 y contar las divisiones hasta que el cociente de 0.
Ejemplo: Num = 121, contador = 0
121/10 = 12 --> contador = 1 12/10 = 1 --> contador = 2 1/10 = 0 --> contador = 3 y ahi finaliza el bucle
|
|
|
En línea
|
A reader lives a thousand lives before he dies. The man who never reads lives only one
|
|
|
Valkyr
Desconectado
Mensajes: 646
Divide y vencerás
|
También podrías hacer algo así: #include<stdio.h> #include<ctype.h> int main(void){ int a, digitos; digitos = 0; digitos++; } return 0; }
aunque como dices que no puedes hacer uso de funciones pues podrías hacer también algo así: #include<stdio.h> int main(void){ int a, digitos; digitos = 0; while((char)a != '\n'){ digitos++; } printf("%d digitos", digitos ); }
pero tendrías que comprobar dentro del bucle While que lo que has leido es un número, si no se colaría xD. Saludos.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
DUDA CON VISUAL BASIC NÚMERO DE DÍGITOS MÁXIMOS RANDOM
Programación Visual Basic
|
DeIMachine
|
0
|
1,473
|
18 Abril 2014, 21:00 pm
por DeIMachine
|
|
|
¿Cómo separar un numero binario en digitos?
Programación C/C++
|
Sherboc
|
7
|
9,943
|
24 Junio 2016, 02:30 am
por AlbertoBSD
|
|
|
como tomar la parte de un numero de dos digitos
.NET (C#, VB.NET, ASP)
|
luis456
|
7
|
4,908
|
15 Febrero 2020, 16:55 pm
por luis456
|
|
|
Cómo saber un número de celular que tiene los últimos dígitos bloqueados con asteriscox
Dispositivos Móviles (PDA's, Smartphones, Tablets)
|
Reiko
|
6
|
13,502
|
25 Noviembre 2020, 00:16 am
por Reiko
|
|
|
[Pregunta]: ¿Cómo puedo obtener x primeros digitos de un número con PHP?
Desarrollo Web
|
Leguim
|
3
|
4,721
|
5 Agosto 2021, 00:56 am
por DtxdF
|
|