Java - Ayuda con Algoritmo en java

 
Vista:

Ayuda con Algoritmo en java

Publicado por Norela (4 intervenciones) el 26/02/2011 04:39:55
Buenas noches,

Quisiera que alguien me pudiera ayudar con el siguiente ejercicio que me pusieron en la Universidad.
“Elabore algoritmo que lea un número entero menor que 32768 y que determine cuántos dígitos tiene”.
Sé que es fácil de desarrollar, pero aunque he tratado de hacerlo de varias formas, realmente no sé en que falla porque siempre me sale error o no me muestra lo que quiero.
Cabe aclarar que no puedo utilizar la estructura ciclo, pues fue una restricción que puso el profesor para el ejercicio, lo debo hacer en java a través de Netbeans.
Estas han sido las formas que he utilizado:
Primera forma:
public static void main(String[] args) {
{
long n;
n < 32768;
Scanner teclado = new Scanner (System.in);
System.out.println("Ingrese el número a leer");
n = teclado.nextLong();


{
if (n < 10);
System.out.println("El número leido fue " + n );
System.out.println("El número tiene un dígito");
else if (n < 100);
System.out.println("El número leido fue " + n );
System.out.println("El número tiene dos dígitos");
else if (n < 1000);
System.out.println("El número leido fue " + n );
System.out.println("El número tiene tres dígitos");
else if (n < 10000);
System.out.println("El número leido fue " + n );
System.out.println("El número tiene cuatro dígitos");
else if (n < 100000);
System.out.println("El número leido fue " + n );
System.out.println("El número tiene cinco dígitos");
else
System.out.println("El número no puede ser leído");

}



}
}
}

}

Segunda Forma: Aquí corregí los espacios en el código anterior y tampoco funcionó:
public static void main(String[] args) {
{
long n;
n < 32768;
Scanner teclado = new Scanner (System.in);
System.out.println("Ingrese el número a leer");
n = teclado.nextLong();


{
if (n < 10);
System.out.println("El número leido fue " + n );
System.out.println("El número tiene un dígito");
else
if (n < 100);
System.out.println("El número leido fue " + n );
System.out.println("El número tiene dos dígitos");
else
if (n < 1000);
System.out.println("El número leido fue " + n );
System.out.println("El número tiene tres dígitos");
else
if (n < 10000);
System.out.println("El número leido fue " + n );
System.out.println("El número tiene cuatro dígitos");
else
if (n < 100000);
System.out.println("El número leido fue " + n );
System.out.println("El número tiene cinco dígitos");
else
System.out.println("El número no puede ser leído");

}



}
}
}

}
Tercera Forma:
public static void main(String[] args) {
long n;
Scanner teclado = new Scanner(System.in);
n = teclado.nextLong();
System.out.println("Ingrese número: ");

{
switch long (n);
{
case 1: if (n < 32768 && n < 10);
System.out.println("El número es " + n "y tiene un dígito");
break;
case 2: if (n < 32768 && n < 100);
System.out.println("El número es " + n "y tiene dos dígitos");
break;
case 3: if (n < 32768 && n < 1000);
System.out.println("El número es " + n "y tiene tres dígitos");
break;
case 4: if (n < 32768 && n < 10000);
System.out.println("El número es " + n "y tiene cuatro dígitos");
break;
case 5: if (n < 32768 && n < 100000);
System.out.println("El número es " + n "y tiene cinco dígitos");
break;
default:
System.out.println("Ingrese un número menor que 32768");
}
n = teclado.nextLong();
}
}
}

Cuarta forma:
public static void main(String[] args) {
{
long n;
n < 32768;
Scanner teclado = new Scanner (System.in);
System.out.println("Ingrese el número a leer");
n = teclado.nextLong();


{
if (n < 10);
System.out.println("El número leido fue " + n );
System.out.println("El número tiene un dígito");
if (n < 100);
System.out.println("El número leido fue " + n );
System.out.println("El número tiene dos dígitos");
if (n < 1000);
System.out.println("El número leido fue " + n );
System.out.println("El número tiene tres dígitos");
if (n < 10000);
System.out.println("El número leido fue " + n );
System.out.println("El número tiene cuatro dígitos");
if (n < 100000);
System.out.println("El número leido fue " + n );
System.out.println("El número tiene cinco dígitos");
System.out.println("El número no puede ser leído");

}



}
}
}

Quinta forma: El mismo algoritmo anterior, solo que en la definición de variables quite n < 32768. Pero me evaluó el número en todos los casos.
Este fue el resultado:
run:
Ingrese el número a leer
98
El número leido fue 98
El número tiene un dígito
El número leido fue 98
El número tiene dos dígitos
El número leido fue 98
El número tiene tres dígitos
El número leido fue 98
El número tiene cuatro dígitos
El número leido fue 98
El número tiene cinco dígitos
El número no puede ser leído
BUILD SUCCESSFUL (total time: 9 seconds)

Espero puedan decirme que es lo que estoy haciendo mal (probablemente muchas cosas, pues soy nueva en este medio).

Les quedo muy agradecida.
:)
Norela M.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda con Algoritmo en java

Publicado por reiky (60 intervenciones) el 07/03/2011 20:36:02
algo sensillo puede ser:

String.valueOf(numero).length()
conviertes a String el numero, con length() obtienes la longitud de una cadena

por lo tanto

pedir el numero

public void imprimir(int numero){
if(numero<=32768 && numero>=0){
System.out.println("el numero introducido es: "+numero);
if(numero<10){
System.out.println("el numero tiene: "+ String.valueOf(numero).length() +" digito");
}
System.out.println("el numero tiene: "+ String.valueOf(numero).length() +" digitos");
}
else{
System.out.println("numero no valido");
}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Ayuda con Algoritmo en java

Publicado por Camilo Andrés (62 intervenciones) el 27/02/2011 02:08:43
Hola Norela,

lo que sucede es que las sentencias if no deben llevar ; al final de la línea y hay varias { } que están mal ubicadas, te puedo decir que con ñla primera forma que usaste me funciono pero haciendo las modificaciones que te digo, ademas que en vez de usar n < 32768; la reemplazo por if(n < 32768) { "ingresa lo que quieres que haga tu código cuando se cumpla la sentencia"}

y sigues la estructura para tu código, intenta haciendo los arreglos que te digo y me comentas, te dejo una parte de código para que te guíes y tu lo terminas, cualquier cosa me comentas.

if(n < 32768) {
Scanner teclado = new Scanner (System.in);
System.out.println("Ingrese el número a leer");
n = teclado.nextLong();

if (n < 10){
System.out.println("El número leido fue " + n );
System.out.println("El número tiene un dígito");
}
else if (n < 100) {
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con Algoritmo en java

Publicado por miguel (6 intervenciones) el 24/03/2011 21:04:43
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

/**
*
* @author miguel
*/
public class Max_Min {

/**
* @param args the command line arguments
*/
public static void main(String[] args) throws IOException {
// TODO code application logic here
int num = 0;
String num_convertido = "";
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Ingrese un numero");
num = Integer.parseInt(br.readLine());
num_convertido = String.valueOf(num);
System.out.println("El numero tiene " + num_convertido.length() + " digitos");
}

}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con Algoritmo en java

Publicado por Norela Mesa (4 intervenciones) el 28/02/2011 01:11:32
Hola.
Muchas gracias por responder a mi inquietud.
Modifiqué los agrupadores y al final cambié < 100000 por <32768 y me funciono.
Mil gracias!!! seguiré teniendo en cuenta tus observaciones para próximas aplicaciones!!!
:)
Saludos,
Norela M.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar