На днях я обновил систему автоматизированной проверки задач. Для проверки работоспособности решил одну из задач на C#. Но так как само решение задачи довольно простое, то решил я ее не совсем школьным способом.
Условие задачи
Напишите программу поиска номера первого из двух последовательных элементов в целочисленном массиве из 30 элементов, сумма которых максимальна. Если таких элементов несколько, то вывести номер первой пары.
Решение на C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication2
{
class Program
{
static int StrToInt(string s)
{
return Convert.ToInt32(s);
}
static void Main(string[] args)
{
string[] s = Console.ReadLine().Split(new char[] {' '},StringSplitOptions.RemoveEmptyEntries);
int[] a=Array.ConvertAll(s, new Converter<string,int>(StrToInt));
int imax = 0;
for (int i = 1; i < a.Length-1; i++)
if (a[imax] + a[imax + 1] < a[i] + a[i + 1]) imax = i;
Console.Write(imax+1);
}
}
}
Особенностью решения является использование метода ConvertAll класса Array. Для его использования необходимо создать функцию перевода из одно типа данных в другой тип. В данном решении это StrToInt. Решение приведено для демонстрации возможного способа конвертации массива.