Valores de pi
Publicado por george (3 intervenciones) el 24/10/2018 13:23:38
Hola .. necesito un programa que me genere de una planilla excel , 10000 valor a la vez..
gracias
gracias
Valora esta pregunta


0
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author billy.johnson
*/
public class SearchPi {
public static final String PI_FILE_PATH = "C:\\pi.txt";
/**
* Abre un archivo con los dígitos de PI
*
* @return Devuelve el contenido del archivo que contiene los dígitos de PI
* (PI_FILE_PATH)
*/
public String readPi() {
File archivo;
FileReader fr = null;
BufferedReader br;
String pi = "";
try {
archivo = new File(PI_FILE_PATH);
fr = new FileReader(archivo);
br = new BufferedReader(fr);
// Lectura del fichero
String linea;
while ((linea = br.readLine()) != null) {
pi += linea;
}
} catch (IOException e) {
e.printStackTrace(System.out);
} finally {
try {
if (fr != null) {
fr.close();
}
} catch (IOException e2) {
e2.printStackTrace(System.out);
}
}
return pi;
}
public static void addToIndexs(List<String[]> indexs, String pi, String q, int index) {
String anteriores, posteriores;
if (index < 9) {
anteriores = pi.substring(0, index);
} else {
anteriores = pi.substring((index - 9), index);
}
if (q.length() + index + 9 > pi.length()) {
posteriores = pi.substring(q.length() + index);
} else {
posteriores = pi.substring(index + q.length(), index + q.length() + 9);
}
indexs.add(new String[]{String.valueOf(index), anteriores, posteriores});
}
public static void main(String[] args) {
SearchPi searchPi = new SearchPi();
String pi = searchPi.readPi();
if (pi.isEmpty()) {
System.out.println("Parece que no se pudo encontrar el archivo con los dígitos de Pi");
} else {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
Long q;
try {
System.out.println("Introduzca el número que desea buscar dentro de PI: ");
q = Long.parseLong(br.readLine());
} catch (IOException | NumberFormatException ex) {
q = 0L;
ex.printStackTrace(System.out);
}
System.out.println("El número que se buscará en la serie será: " + q);
if (q.compareTo(0L) > 0) {
if (pi.contains(q.toString())) {
List<String[]> indexs = new ArrayList();
int index = pi.indexOf(q.toString());
int last = pi.lastIndexOf(q.toString());
if (index == last) {
addToIndexs(indexs, pi, q.toString(), index);
} else {
addToIndexs(indexs, pi, q.toString(), index);
while (index <= last) {
index = pi.indexOf(q.toString(), index + 1);
if (index == -1) {
break;
} else {
addToIndexs(indexs, pi, q.toString(), index);
}
}
}
System.out.println("cantidad de indices encontrados: " + indexs.size());
System.out.println("a continuación la lista de indices encontrados: ");
System.out.println("index\tanteriores\tposteriores");
indexs.forEach((i) -> {
System.out.println(i[0] + "\t" + i[1] + "\t" + i[2]);
});
// for (String[] i : indexs) {
// System.out.println(i[0] + "\t" + i[1] + "\t" + i[2]);
// }
} else {
System.out.println("Parece que el número ingresado no se encuentra dentro de los dígitos que tenemos de PI");
}
} else {
System.out.println("Parece que has introducido un número incorrecto");
}
}
}
}
Introduzca el número que desea buscar dentro de PI:
12345
El número que se buscará en la serie será: 12345
cantidad de indices encontrados: 8
a continuación la lista de indices encontrados:
index anteriores posteriores
49703 523092666 888731028
181677 653977165 743403044
224817 655090811 990450064
447857 472735140 502046290
538332 115712614 364963900
723366 220130494 535778954
766637 544029568 344894693
814214 606991340 566186600
BUILD SUCCESSFUL (total time: 3 seconds)