/**
   Cyclic shirt hash code for strings.

   @author Franck van Breugel
   @version 1.0  July 16, 2003
*/
public class CyclicShiftHashCode
{
    public static void main(String[] args)
    {
	if (args.length < 1)
	{
	    System.out.println("Usage: java CyclicShiftHashCode <string>");
	}
	else
	{
	    String s = args[0];
	    int sum = 0;
	    for (int i = 0; i < s.length(); i++)
	    {
		sum = (sum << 5) | (sum >>> 27); // cyclic shift 5 positions to the left
		sum += (int) s.charAt(i);
	    }
	    System.out.println(sum);
	}
    }
}
