Сумма кодов букв трех имен деленное на 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);
}
}
}