public class EvalNumber{ private static long evalNumber(String digits, int base){ int len=digits.length(); if (len==0) return 0; if (len==1) return evalDigit(digits); return base*evalNumber(digits.substring(0,len-1),base) +evalDigit(digits.substring(len-1)); } // FIXME: this only works for 0-9 private static int evalDigit(String digit){ return digit.charAt(0)-'0'; } public static void main(String[] args){ System.out.println(evalNumber("666",10)); System.out.println(evalNumber("101",10)); System.out.println(evalNumber("101",2)); } }