public class FinalStatic {
	final static public int MAX = 10; // Constante y de clase
	protected int a;
	
	public FinalStatic(int a)
	{
		this.a = a;
		// MAX = 20; // Marca error porque un valor constante no puede modificarse
	}
	
	public static void tabla(int a)
	{
		for(int i=1; i<=MAX; i++)
			System.out.println(a+" * "+i+" = "+(a*i));
	}
	
	public static int fact(int n)
	{
		/*if (n==1 || n==0)
			return 1;
		return fact(n-1)*n;*/
		
		 int f=1;
		 for (int i=1; i<=n; i++)
			 f = f*i;
		 return f;
	}
	
	public final void digitos() // Este método no se puede sobreescribir en la clase hija
	{
		int aux[] = new int[MAX];
		int i=0;
		
		System.out.println("Los digitos son:");
		while (a>0)
		{
			aux[i] = a % MAX;
			i++;
			a /= MAX; // a = a/MAX;
		}
		
		while (i>0)
		{
			i--;
			System.out.println(aux[i]);
		}		
	}

	public static void digitosRec(int a)
	{
		int aux;
		
		if (a>=MAX)
		{
			aux = a % MAX;
			a /= MAX; // a = a/MAX;
			digitosRec(a);
		}
		else
			aux=a;
		System.out.println(aux);
	}

}
