Duda Java rango datos

Iniciado por jandepeich, 13 Junio 2015, 00:32 AM

0 Miembros y 1 Visitante están viendo este tema.

jandepeich

Hola a todos,aqui les dejo mi duda a ver si me la pueden solucionar:

Tengo que hacer una tabla de multiplicar en java la cual me pida un numero inicial(ejemplo:1) y un numero final (ejemplo:3) y que me salga en la consola ese rango de datos(en el ejemplo deberia aparecer la tabla del 1,del 2 y del 3).La tabla de multiplicar la hago bien y la entrada de datos por la consola tambien,pero no consigo que me salga la tabla del 2;solo la del 1 y la 3.
¿Como se haria para que me haga ese rango?
Aqui les dejo el codigo (un desastre) a ver que les parece:


package actividadesUF1;


import java.util.Scanner;

public class Actividad032 {

public static void main(String[] args) {



int tabla1;

int tabla2;



Scanner leer=new Scanner(System.in);


System.out.println("Escribe rango inicial");

tabla1=leer.nextInt();

System.out.println("Escribe rango final");

tabla2=leer.nextInt();




for(int var1=0;var1<11;var1++) {

if (tabla1<=10){

System.out.println(+tabla1+"x"+var1+"="+(var1*tabla1));


}

else if(tabla1>10){

System.out.println("Vuelva a introducir un numero");
}
}
leer.close();





for(int var2=0;var2<11;var2++) {

if (tabla2<=10){

System.out.println(+tabla2+"x"+var2+"="+(var2*tabla2));


}

else if(tabla2>10){

System.out.println("Vuelva a introducir un numero");
}
}
leer.close();


}
}




gracias

jandepeich

Que habria que cambiar aqui:

System.out.println(+tabla1+"x"+var1+"="+(var1*tabla1));

para poder sacar la tabla de multiplicar de 1,2 y 3(o sea las tablas de 1-3)

Se lo agradezco mucho si me ayudan que me estoy volviendo loco.

Usuario Invitado

Te dejo una clase que estoy haciendo recién para operaciones matemáticas:

Código (java) [Seleccionar]

package org.educacode.mathio;

import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;

/**
* Math util methods and classes
* @author Gustavo Garsaky
* @version 0.0.1
*/
public class MathIO {
public final static PrimeNumbers PRIME_NUMBERS = new PrimeNumbers();

public final static class PrimeNumbers {

public List<Integer> listPrimesUntil(int limit) {
List<Integer> naturals = new CopyOnWriteArrayList<>();
// init naturals
for(int i=2; i<=limit; i++) {
naturals.add(i);
}
for(Integer current : naturals) {
discardMultiples(naturals, getMultiplesOf(current, naturals.size()));
// if discard continue, that means the process should continue
if(discard(current, naturals.size())) {
continue;
} else {
break;
}
}
List<Integer> primes = naturals;
return primes;
}
/**
* check the first natural quad. If it's
* less tan limit, process should continue
* @param firstNatural first natural number
*/
private boolean discard(int firstNatural, int limit) {
double firstNaturalQuad = Math.pow(new Double(String.valueOf(firstNatural)), 2.0d);
if(firstNaturalQuad <= limit) {
return true;
}
return false;
}
/**
* Get new list of natural numbers. The new list have all numbers
* that not in multiples of first natural number
* @param naturals Naturals numbers
* @param number Number to get multiples
*/
private void discardMultiples(List<Integer> naturals, List<Integer> multiples) {
// check if each multiple is in naturals list.
// if it isn't, append the multiple to new list
for(int i=0; i<multiples.size(); i++) {
             for(int k=0; k<naturals.size(); k++) {
                           if(multiples.get(i) == naturals.get(k)) {
                     naturals.remove(k);
                                  }
             }
}
}
} // end prime numbers class


/**
* Get the multiples of a number with some limit
* @param number Number to get multiples
* @param limit of multiples to get
*/
public static List<Integer> getMultiplesOf(int number, int limit) {
List<Integer> multiples = new ArrayList<>();
for(int i=number; i<limit; i++ ) {
if(i < limit) {
multiples.add(number * i);
}
}
return multiples;
}
/**
* Show a multiplication table of a number with a limit
* @param number Number to get multiplication table
* @param limit Limit of multiplicator
*/
public static void showMultipTableOf(int number, int limit) {
for(int i=1; i<=limit; i++) {
System.out.println(number + " x " + i + " = " + (number * i));
}
}
}


De momento saca los números primos de 2 a n-1 y muestra la tabla de multiplicar de un número a n, donde n es el límite del multiplicador.

Por ejemplo, en tu caso, solo haría:

Código (java) [Seleccionar]

import java.util.Scanner;
import org.educacode.mathio.MathIO;

public class MultiplicationTableTest {

public static void main(String[] args) {
final Scanner READER = new Scanner(System.in);
int initial;
int last;
int limit;
System.out.println("**** Tabla de multiplicar ****\n\n");
System.out.println("[+] Ingresa en rango los números");
initial = READER.nextInt();
last = READER.nextInt();
System.out.println("[+] Ingrese el límite del multiplicador");
limit = READER.nextInt();
READER.close();
for(int i = initial; i <= last; i++) {
MathIO.showMultipTableOf(i, limit);
}
}

}


Y te mostraría las tablas de multiplicar de un rango dado.
"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein

jandepeich