Adsence

lunes, 28 de marzo de 2011

Triangulo-de-pascal

Leave a Comment
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 :