日期:2014-05-18  浏览次数:20995 次

C# 中1-100数列中,可能中间缺少几个数,请问如何找出缺少的数字?

C# 中1-100数列中,可能中间缺少几个数,请问如何找出缺少的数字?


------解决方案--------------------
C# code

            int[] a = { 1, 5, 87, 2, 55 };
            int[] b = new int[101];
            for (int i = 0; i < a.Length; i++)
                b[a[i]] = 1;
            for (int i = 1; i < b.Length; i++)
                if (b[i] != 1)
                    Console.Write("{0},", i);
            Console.ReadLine();

------解决方案--------------------
想了一个,哈哈哈
先把这个序列循环放进一个字典中,主键就是1-100
然后再循环这个字段
C# code


for(int i=1;i<=100;i++)
{
      try
      {
            dic[i]...
      }
      catch()
      {
            //出错的就是少的。
      }
}

------解决方案--------------------
C# code

int[] a = { 1, 5, 87, 2, 55 };
ArrayList result=new ArrayList ();
for(int i=1;i<=100;i++)
{
                 if(!a.Contains(i))      }
{
result.Add(i);
}
      }

------解决方案--------------------
int[] num={2,15,48,68,77,88,95};
num.sort();//对数组排序
int[] newn=new int[100];//用来放结果的
int index=0;//记录存到哪个下标位了
int j=1;
for(int i=0;i<num.length;i++)
{
for(;j<100;j++)
{
if(num[i]==j)
{
//遇到相等的,就换下一个数
break;
}
newn[index]=j;
index++;
}
}
看看这个行不,还没学过 ArrayList !!!
------解决方案--------------------
C# code
int[] a = { 1, 5, 87, 2, 55 };

var result = Enumerable.Range(1, 100).Except(a);

foreach (int x in result)
    Console.WriteLine(x);

------解决方案--------------------
最笨的方法:
 ArrayList a = new ArrayList();
int num=1;
a.Add(num);//这里把你要检查的数据添加进去
int[] mask = new int[100];//这个数组是1,23……100个整数
for (int i = 1; i <= 100; i++)
{
if (a.Contains(i))
{
mask[i] = 0;
}
else
continue;
}
for (int j = 0; j < 100; j++)
{
if (mask[j] != 0)
Console.WriteLine("This number is not exist!----{0}", mask[j]);
}
------解决方案--------------------
mask[j]就是你要的缺少的数