1. 

/**
* Angewandte Mathematik, SS09, IFB 2C
* ACM Problem #389 (Basically Speaking)
* Link: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=16&page=show_problem&problem=1414
*
* @author Christian Posselt
* @author Jonathan Schubert
* @version 1.1, 05/13/2009
*
* Status : Accepted
* Runtime: 1.068
*/
import java.util.*;
import java.io.*;

public class Main
{
//Map for mapping string to integer
private static final HashMap<String,Integer> toDez = new HashMap<String,Integer>();
//Map for mapping integer to string
private static final HashMap<Integer,String> toBase = new HashMap<Integer,String>();
public static void main(String... args) throws IOException
{
toDez.put("0", 0);
toDez.put("1", 1);
toDez.put("2", 2);
toDez.put("3", 3);
toDez.put("4", 4);
toDez.put("5", 5);
toDez.put("6", 6);
toDez.put("7", 7);
toDez.put("8", 8);
toDez.put("9", 9);
toDez.put("A", 10);
toDez.put("B", 11);
toDez.put("C", 12);
toDez.put("D", 13);
toDez.put("E", 14);
toDez.put("F", 15);

toBase.put(0,"0");
toBase.put(1,"1");
toBase.put(2,"2");
toBase.put(3,"3");
toBase.put(4,"4");
toBase.put(5,"5");
toBase.put(6,"6");
toBase.put(7,"7");
toBase.put(8,"8");
toBase.put(9,"9");
toBase.put(10,"A");
toBase.put(11,"B");
toBase.put(12,"C");
toBase.put(13,"D");
toBase.put(14,"E");
toBase.put(15,"F");
//StringBuilder including the solutions
StringBuilder builder = new StringBuilder();
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
//Scanner sc = new Scanner(System.in);
while(true)
{
String line = reader.readLine();
if(line == null) //EOF
break;
StringTokenizer token = new StringTokenizer(line," ");
String usercode = token.nextToken(); //Number in base given by user
int baseFrom = Integer.parseInt(token.nextToken()); //base of this number
int baseTo = Integer.parseInt(token.nextToken()); //convert number to this base
String result = toBase(toDecimal(usercode,baseFrom),baseTo); //calculate new Base
if(result == null) //more than 7 digits will be an error
builder.append(" ERROR\n");
else //add solution left justified to string builder
builder.append(String.format("%7s",result)+"\n");

}
System.out.print(builder.toString());
}
//convert number do decimal system
public static int toDecimal(String userinput, int userbase)
{
int result = 0;
int fac = 1;
if(userinput.equals("0"))
return 0;
for(int i = userinput.length()-1; i >= 0; i --)
{
if(!toDez.containsKey(userinput.substring(i,i+1)))
return -1;

result+= toDez.get(userinput.substring(i,i+1))*fac;
fac *= userbase;
}
return result;
}
//convert number from decimal system to a other system
public static String toBase(int have, int base)
{
StringBuilder result = new StringBuilder();
int fac = 1;
int digitCounter = 0;
if(have == 0)
return "0";
while(have >= 1 && digitCounter <= 7)
{
result.insert(0, toBase.get(have%base));
have /= base;
fac *= base;
digitCounter ++;
}
if(digitCounter > 7)
return null;
return result.toString();
}
}
2.

/**
 * Angewandte Mathematik, SS09, IFB 2C
 * ACM Problem 389 - Basically Speaking
 * Link: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&category=5&problem=325&mosmsg=Submission+received+with+ID+7133549
 * @author Miesel Christoph
 * @author Seilbeck Robert
 * @author Wolfram Andre
 * @version X.0 17.05.2009
 *
 * Status : Accepted
 * Runtime: 2.900
 */


import java.util.*;
import java.io.*;
import java.lang.Math.*;

public class Main
{
    public static void main(String[] args)throws Exception
    {   
        Scanner sc = new Scanner(System.in);
       
        String sb = null;
        int baseConvertingFrom;
        int baseConvertingTo;
        int decimal = 0;
        StringBuilder result = new StringBuilder();
       
        int theBase = 1;
       
       
        while(sc.hasNext())
        {
            sb = sc.next();
            result = new StringBuilder();
            baseConvertingFrom = sc.nextInt();
            baseConvertingTo = sc.nextInt();
            // Converting at first in an Base_10-Value!!!
           
           
            if(baseConvertingFrom <= 10)
            {
               
                for(int i = sb.length()-1; i>=0; i--)
                {
                   
                    decimal += theBase*((int)sb.charAt(i)-(int)('0'));
                    theBase*=baseConvertingFrom;
                }
                               
            }
            else
            {
                for(int i = sb.length()-1; i>=0; i--)
                {
                   
                    switch(sb.charAt(i))
                    {
                    case 'A':
                        decimal += theBase*10;
                        break;
                    case 'B':
                        decimal += theBase*11;
                        break;
                    case 'C':
                        decimal += theBase*12;
                        break;
                    case 'D':
                        decimal += theBase*13;
                        break;
                    case 'E':
                        decimal += theBase*14;
                        break;
                    case 'F':
                        decimal += theBase*15;
                        break;
                    default:
                        decimal += theBase*((int)sb.charAt(i)-(int)('0'));
                   
                    }
                    theBase *= baseConvertingFrom;
                }
               
                   
            }
           
            // Now converting into the real Base-Number!!!
           
            if(baseConvertingTo <= 10)
            {
               
                do
                {
                    result.insert(0, decimal%baseConvertingTo);
                    decimal /= baseConvertingTo;
                }
                while(decimal != 0);
               
                if(result.length() > 7)
                    System.out.println("  ERROR");
                else
                    System.out.printf("%7s%n",result.toString());
            }
            else
            {
               
                do
                {
                    switch(decimal%baseConvertingTo)
                    {
                    case 10:
                        result.insert(0, "A");
                        decimal /= baseConvertingTo;
                        break;
                    case 11:
                        result.insert(0, "B");
                        decimal /= baseConvertingTo;
                        break;
                    case 12:
                        result.insert(0, "C");
                        decimal /= baseConvertingTo;
                        break;
                    case 13:
                        result.insert(0, "D");
                        decimal /= baseConvertingTo;
                        break;
                    case 14:
                        result.insert(0, "E");
                        decimal /= baseConvertingTo;
                        break;
                    case 15:
                        result.insert(0, "F");
                        decimal /= baseConvertingTo;
                        break;
                    default:
                        result.insert(0, decimal%baseConvertingTo);
                        decimal /= baseConvertingTo;
                   
                    }
                }while(decimal != 0);   
               
                if(result.length() > 7)
                    System.out.println("  ERROR");
                else
                    System.out.printf("%7s%n",result.toString());
            }
           
            theBase = 1;
            decimal = 0;
           
           
        }
    }
}