Hola Advkael , te cuento que el programa que tengo hecho es este 
  Cita:  import java.util.Scanner; 
public class Programa1 { 
public static void main (String[] args)
{ 
 
int Arreglo[] = new int [3]; 
int var1 = 0;
int var2 = 0;
int var3 = 0;
int var4 = 0;
 
Scanner Lector = new Scanner(System.in); 
System.out.println("Ingresa Valores" ); 
 
 
 
for(int i=0;i<Arreglo.length;i++){ 
System.out.print("Ingrese número : " ); 
Arreglo[i]=Lector.nextInt(); 
 
if (Arreglo[i]/1000>0 && Arreglo[i]/1000<10){ 
var1=9-Arreglo[i]/1000;
var2=9-Arreglo[i]/100%10;
var3=9-Arreglo[i]/10%10;
var4=9-Arreglo[i]%10;
System.out.println("Unidades que faltan para llegar a 9 = " +"-"+var1 +"-"+var2 +"-"+var3 +"-"+var4);
} 
 
else {
System.out.println("Su número no tiene 4 digitos" );} 
  } 
 } 
}
    Si lo logras ejecutar en bluej por ejemplo veras que funciona bastante bien , es decir reconoce si el numero ingresado tiene 4 dígitos por ejemplo , pero el problema es en el momento de separar los dígitos de ese numero y ahí calcular a partir de esos dígitos cuantas unidades faltan para llegar a nueve , por ejemplo al numero 4593 , lo descompone en -4-5-9-3 , hasta ese momento perfecto , pero en el momento de mostrar cuanto falta para llegar a nueve indica algo así : -5-4-0-6 , el problema nace en este cero anterior , el cual debe aparecer como  9. 
Muchas gracias.