En este programa realiza el triangulo de pascal sobre un numero. van dos clases: la clase leer, que espero que les sirvay y aprendar a manejarla, y la clase triangulo que es el que hace todas las operaciones.
[java]
import java.io.*;
public class Leer
{
public static String dato()
{
String sdato = "";
try
{
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader flujoE = new BufferedReader(isr);
sdato = flujoE.readLine();
}
catch(IOException e)
{
System.err.println("Error: " + e.getMessage());
}
return sdato;
}
public static short datoShort()
{
try
{
return Short.parseShort(dato());
}
catch(NumberFormatException e)
{
return Short.MIN_VALUE;
}
}
public static int datoInt()
{
try
{
return Integer.parseInt(dato());
}
catch(NumberFormatException e)
{
return Integer.MIN_VALUE;
}
}
public static long datoLong()
{
try
{
return Long.parseLong(dato());
}
catch(NumberFormatException e)
{
return Long.MIN_VALUE;
}
}
public static float datoFloat()
{
try
{
Float f = new Float(dato());
return f.floatValue();
}
catch(NumberFormatException e)
{
return Float.NaN;
}
}
public static double datoDouble()
{
try
{
Double d = new Double(dato());
return d.doubleValue();
}
catch(NumberFormatException e)
{
return Double.NaN;
}
}
}
------------------------------------------------------------------------------------------------------------------------------
public class TrianguloPascal
{
public static String cad="\n";
public static void main(String[] args)
{
System.out.println("Digite N");
long n=Leer.datoInt();
long s;
for (int j=0;j< =n;j++)
{
s=j;
hacer(n,s);
for (int i=0;i< =s;i++)
{
long y=calcular(s,i);
cad+=y+"\t"+"\t";
}
//System.out.println(cad);
cad+="\n";
}
System.out.println(cad);
}
public static long calcular(long n, long r)
{
long facn=factorial(n);
long facr=factorial(r);
long factnr=factorial((n-r));
long deno=facr*factnr;
long total=facn/deno;
return total;
}
public static long factorial (long n)
{
long facn=1;
if(n >0)
{
for(int i=1; i< =n; i++)
{
facn=facn*i;
}
return facn;
}
else
return facn;
}
public static void hacer(long n, long s)
{
long y=n-s;
if(y< 0)
{
if (par(y))
{
y=y*2;
for (int i=1;i< =y;i++)
{
cad+="\t";
}
}
else
{
y=y*2;
for (int i=1;i< =y;i++)
{
cad+="\t";
}
}
}
else
{
y=y+1;
for (int i=1;i< =y;i++)
{
cad+="\t";
}
}
}
public static boolean par(long n)
{
if (n%2==0)
return true;
else
return false;
}
}
[/java]
0 comentarios :
Publicar un comentario