A. C#求连续数字的算法
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
/*
*先排序(用sort方法),再依次求连续的数字的个数,选择最长的打印。
*/
{
classProgram
{
staticvoidMain(string[]args)
{
intnTmpStart=0;
intnResultStart=0;
intnTmpConsecutiveNum=1;
intnResultConsecutiveNum=0;
int[]num={1,4,6,5,8,9,10,15,3,19,18,21,20,21,17};
Array.Sort(num);
nTmpStart=num[0];
for(inti=1;i<num.Length;i++)
{
if(num[i]==num[i-1])
{
if(i==num.Length-1)
{
if(nTmpConsecutiveNum>nResultConsecutiveNum)
{
nResultConsecutiveNum=nTmpConsecutiveNum;
nResultStart=nTmpStart;
}
}
else
{
continue;
}
}
elseif(num[i]==(num[i-1]+1))
{
nTmpConsecutiveNum++;
if(i==num.Length-1)
{
if(nTmpConsecutiveNum>nResultConsecutiveNum)
{
nResultConsecutiveNum=nTmpConsecutiveNum;
nResultStart=nTmpStart;
}
}
}
else
{
if(nTmpConsecutiveNum>nResultConsecutiveNum)
{
nResultConsecutiveNum=nTmpConsecutiveNum;
nResultStart=nTmpStart;
}
nTmpStart=num[i];
nTmpConsecutiveNum=1;
}
}
Console.WriteLine("最长连续数字:");
for(intj=0;j<nResultConsecutiveNum;j++)
{
Console.Write("{0} ",nResultStart+j);
}
Console.WriteLine();
}
}
}