Известны фамилия, имя и отчество пользователя. Найти его код личности - C#
Формулировка задачи:
Замечание. Данные передаются в программу из командной строки
Задача. Известны фамилия, имя и отчество пользователя. Найти его код личности.
Правило получения кода личности: каждой букве ставится в соответствие число – порядковый
номер буквы в алфавите. Эти числа складываются. Если полученная сумма не является
однозначным числом, то цифры числа снова складываются и так до тех пор, пока не будет
получено однозначное число. Например:
Исходные данные: Александр Сергеевич Пушкин
Код личности:
(1+13+6+12+19+1+15+5+18)+(19+6+18+4+6+6+3+10+25)+(17+21+26+12+10+15)=
=288 => 2+8+8=18 => 1+8=9
Решение задачи: «Известны фамилия, имя и отчество пользователя. Найти его код личности»
textual
Листинг программы
public static string Alphabet = GetAplhabetString();
static string GetAplhabetString()
{
var str = new StringBuilder();
for (char i = 'а'; i <= 'я'; i++)
{
str.Append(i.ToString());
}
return str.ToString();
}
public static int[] GetNumberCodes(string text)
{
int[] array = new int[text.Length];
for (int i = 0; i < text.Length; i++)
{
array[i] = Alphabet.IndexOf(text[i]) + 1;
}
return array;
}
public static int SumDigits(int Number)
{
int Sum = 0;
while (Number > 0)
{
Sum += Number % 10;
Number /= 10;
}
return Sum;
}
static void Main()
{
string text = "Александр Сергеевич Пушкин".Replace(" ", "").ToLower();
int[] mas = GetNumberCodes(text);
int Sum = mas.Sum();
while (Sum > 9)
{
Sum = SumDigits(Sum);
}
Console.WriteLine(Sum);
}