Сумма кодов букв трех имен деленное на 3 даст ... ? - C#
Формулировка задачи:
задача заключается в следующем. необходимо взять 3 имени , потом имена перевести в числовой код ASCII. Далее, необходимо сложить все числа и сумму разделить на 3. Поидее, должно получится число, которое дает в сумме одно из имен.
возможно ли это, или я неправильно понял задачу ?
Решение задачи: «Сумма кодов букв трех имен деленное на 3 даст ... ?»
textual
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- class Program
- {
- static void Main()
- {
- var names = new []{ "Петя", "Маша", "Альберт" };
- Console.WriteLine(string.Join(" ", names));
- var namesNum = names.Select(s => s.Cast<char>().Select(c => (int)c));
- var sum = namesNum.Aggregate((i, j) => i.Zip(j)).Select(n => (char)(n/3));
- Console.WriteLine(new string(sum.ToArray()));
- }
- }
- public static class EnumZip
- {
- public static IEnumerable<int> Zip(this IEnumerable<int> first, IEnumerable<int> second)
- {
- var firstCount = first.Count();
- var secondCount = second.Count();
- if (firstCount < secondCount)
- {
- var tmp = first;
- first = second;
- second = tmp;
- var temp = firstCount;
- firstCount = secondCount;
- secondCount = temp;
- }
- for (int i = 0; i < firstCount; i++)
- {
- yield return first.ElementAt(i) + (secondCount > i ? second.ElementAt(i) : 0);
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д