Приклад:
Є ряд 1,2,3,4,5,7,10
Відповідь буде: 6
Є ряд 1,2,3,4,5,7,10
Відповідь буде: 6
Задача ніби проста але щоб її вирішити довелося написати аж отакий код:
public int FindOperatorNumber()
{
try
{
System.Data.SqlClient.SqlDataReader ReadDate;
List<int> OperNumbers = new List<int>();
ReadDate = Functions.ExecuteQuery("select distinct oper_num from Operators order by oper_num", Functions.CreateConnectionString(Functions.ReadSettingsParam("Main_Server", "Name"), Functions.ReadSettingsParam("Main_Server", "Base"), Functions.ReadSettingsParam("Main_Server", "User"), Functions.ReadSettingsParam("Main_Server", "Password")));
while (ReadDate.Read())
{
if (Convert.ToInt32(ReadDate["oper_num"].ToString()) > 0)
{
OperNumbers.Add(Convert.ToInt32(ReadDate["oper_num"].ToString()));
}
}
Boolean Flag=false;
int MinNumber = 1;
int ListCount = OperNumbers.Count;
while (Flag == false)
{
for (int I = MinNumber-1; (I < ListCount - 1); I++)
{
if (OperNumbers[I] == MinNumber)
{
Flag = false;
break;
}
else
{
Flag = true;
}
}
if (Flag == false)
{
if (MinNumber != OperNumbers[ListCount - 1])
{
MinNumber = MinNumber + 1;
}
else
{
MinNumber = OperNumbers[ListCount - 1];
Flag = true;
}
}
else
{
if (MinNumber == OperNumbers[ListCount - 1])
{
MinNumber = ++MinNumber;
}
}
}
return MinNumber;
}
catch (Exception err)
{
Functions.WriteToLog(err.ToString(), "Normal");
return -1;
}
}
{
try
{
System.Data.SqlClient.SqlDataReader ReadDate;
List<int> OperNumbers = new List<int>();
ReadDate = Functions.ExecuteQuery("select distinct oper_num from Operators order by oper_num", Functions.CreateConnectionString(Functions.ReadSettingsParam("Main_Server", "Name"), Functions.ReadSettingsParam("Main_Server", "Base"), Functions.ReadSettingsParam("Main_Server", "User"), Functions.ReadSettingsParam("Main_Server", "Password")));
while (ReadDate.Read())
{
if (Convert.ToInt32(ReadDate["oper_num"].ToString()) > 0)
{
OperNumbers.Add(Convert.ToInt32(ReadDate["oper_num"].ToString()));
}
}
Boolean Flag=false;
int MinNumber = 1;
int ListCount = OperNumbers.Count;
while (Flag == false)
{
for (int I = MinNumber-1; (I < ListCount - 1); I++)
{
if (OperNumbers[I] == MinNumber)
{
Flag = false;
break;
}
else
{
Flag = true;
}
}
if (Flag == false)
{
if (MinNumber != OperNumbers[ListCount - 1])
{
MinNumber = MinNumber + 1;
}
else
{
MinNumber = OperNumbers[ListCount - 1];
Flag = true;
}
}
else
{
if (MinNumber == OperNumbers[ListCount - 1])
{
MinNumber = ++MinNumber;
}
}
}
return MinNumber;
}
catch (Exception err)
{
Functions.WriteToLog(err.ToString(), "Normal");
return -1;
}
}
та не такий він і великий...
ВідповістиВидалитину але і задачка не така і складна...
ВідповістиВидалитиЯ ніколи не розуміла нашо шось доказувати і пояснювати якшо все відомо одразу? Хіба не достатньо просто вірний варіант відповіді?
ВідповістиВидалитип.с. Ти так і не відповів на шо образився...
А де я щось доказую і пояснюю?
ВідповістиВидалитиА ти перечитай останні свої коменти в моєму ЖЖ і все зрозумієш.
та я не говорю шо ТИ доказуєш, а взагалі не розумію математику і все шо пов"язане з рахуванням.
ВідповістиВидалитиІ чого дутись? Я ж ніби сказала шо жартую. Якшо це шось допоможе то вибач, я не хотіла образити.
Ти ж казала, що любиш всяких Айтішніків, а любиш їх люби те, що вони люблять.
ВідповістиВидалитиЯ не дуюсь, просто млять, ти втрутилася в мою тонку ментальну організацію, зламала мій внутрішній космос...
Та одне любити, а інше не розуміти...
ВідповістиВидалитиОй, вибач ше раз шо я так поступила. просто я думала в тебе захисний шар потужніший. Не бери все до голови шо говорять всякі та Наталі... Вибач
Мій захистний шар різної товщини для різних людей
ВідповістиВидалитиІ в чому я провинилась шо шар для мене настіки тонкий?..
ВідповістиВидалитиТа навпаки....
ВідповістиВидалитиа краще б провинилась. Думаю було б все краще. Господи, яке я паршиве створіння...
ВідповістиВидалитиРазслабся...
ВідповістиВидалитиА в тебе вийшло б?
ВідповістиВидалитиага....дихай глибше і старайся бути краще, все інше не варте уваги...
ВідповістиВидалити