#include <stdio.h>

int mapping[] = {
1, 1, 4, 2, 4, 4, 2, 1,
5, 4, 4, 2, 1, 5, 2, 5,
5, 5, 4, 3, 3, 3, 3, 2,
5, 5,
};

int num_calc(char array[11])
{
int i;
int total=0;
char c;

for(i=0;i<sizeof(array)/sizeof(array[0]);i++)
{
c = array[i];
if (c >= 'A' && c <= 'Z')
total += mapping[(int)c-'A'];
else if (c >= 'a' && c <= 'z')
total += mapping[(int)c-'a'];
}

return total;
}

int main(int argc, char **argv) {
char message[11] = {"Mystic Meg"};
unsigned int num;

if ((num = num_calc(message)))
{
/* reduce until its negative */
do
num -= 10;
while(num>=0);

/* Since we've overshot, add the last ten back*/
num += 10;

printf("The magic number for %s is %d\n", message, num);
}

return 0;
}
