1. 

/**
* FWP, Ausgewählte Probleme aus dem ACM Programming Contest, SS10
* Problem: 10424 Love Calculator
* Link: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=16&page=show_problem&problem=1365
*
* @author Robert Reichart
* @version 2.0, 19/03/2010
*
* Status : Accepted
* Runtime: 0.112
*/

import java.io.*;
import java.text.DecimalFormat;

class Main{
public static void main(String... args)throws IOException{

//InputStream
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

//Solange Namen vorliegen...
while (in.ready()){
//...Name einlesen
String name1=in.readLine();
String name2=in.readLine();

//...Zahlwert des Namens Ermitteln
double iname1 =lovenumber(name1);
double iname2 =lovenumber(name2);
double ergebnis;

//...Protentzahl der übereinstimmung ermitteln
if(iname1>iname2)
{
ergebnis=iname2/iname1;
}else{
ergebnis=iname1/iname2;
}

//...und ausgeben
DecimalFormat df = new DecimalFormat("#0.00");
System.out.println(df.format(ergebnis*100) + " %");


}
}

//Methode um den Zahlwert des ganzen Namens zu ermitteln
static int lovenumber(String name){
int sum=0;
for (int i=0; i<name.length();i++){
sum+=charval(name.charAt(i));
}
while(sum>=10)
{
sum=quersum(sum);
}
return sum;
}

//Methode zur ermittlung der Quersumme einer Zahl
static int quersum(int n){
int s=0;
while(n != 0) {
s = s + n%10;
n = n/10;
}
return s;
}

//Methode zur ermittlung des Wertes des jeweilen Buchstabens (a=1 A=1 b=2 B=2 usw.)
static double charval(char ch){
//Ist es ein Buchstabe? Ja: Zahlwert zurückgeben Nein:0 zurückgeben
if (Character.isLetter(ch)){
return (Character.toLowerCase(ch)-'a'+1);
}else{
return 0;
}
}
}

2.

/**
 * FWP, Ausgewählte Probleme aus dem ACM Programming
Contest, SS10
 * Problem: 10424 Love Calculator
 * Link: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=16&page=show_problem&problem=1365
 *

 * @author Viktoriya Ryabova
 * @version 1.0,
03/23/2010
 *
 * Method : Ad-Hoc
 * Status :
accepted
 * Runtime: 0.124
 */
import java.text.DecimalFormat;
import java.util.Scanner;
 
public class Main {
 
 /**
  * @param args
  */
 public static void main(String[] args) {
 Scanner sc = new Scanner (System.in);
 double result=0.0;
 DecimalFormat f = new DecimalFormat("#0.00");
 //solange durchführen, wie die namenpaaren angegeben werden
 while(sc.hasNext()){
    String a = sc.nextLine();
    String b = sc.nextLine();
   
    //Die summe von namen-buchstaben wird gezählt
    int bl =countBetweenResult(letterSum(a));
    int bk =countBetweenResult(letterSum(b));
   
    if(a.length()<25&&b.length()<25){
     bl = countBetweenResult(bl);
     bk = countBetweenResult(bk);
     //kleinerer wert wird durch den großeren geteilt, dadurch entsteht prozentzahl
     if (bl<bk)result = (((double)bl/(double)bk))*100;
     else result = (((double)bk/(double)bl))*100;
    }
    if(result<=100)System.out.println(f.format(result)+" %");
    else System.out.println("100%");
  }
}
 
 
  static double charval(char ch){     
    //double wert von char-zeichen wird gerechnet
   if (Character.isLetter(ch))return (Character.toLowerCase(ch)-'a'+1);  
   else return 0;     
  }
 
  //summe aller buchstaben in dem namen berechnet
  static int letterSum(String name){
   int sum=0;
   for (int i=0; i<name.length(); i++){
    sum+=charval(name.charAt(i));
   }
   return sum;
  }
  //die summe wird solange berechnet bis es zu einer einstelligen zahl kommt
 public static int countBetweenResult(int a){
  String s = String.valueOf(a);
    int sum =0;
    for (int j=0; j<s.length(); j++){
    sum+=Character.digit(s.charAt(j),10);
    }
    String n= String.valueOf(sum);
    if(n.length()>1)countBetweenResult(Integer.parseInt(n));
    return sum;
 }
}