第一题可以新建一个List<int>,然后遍历数组,判断并加入不重复的数字,最后通过ToArray()返回
第二题不会,我是算法盲
2. 递归函数
int Power(int n)
{
if (n < 2) return 1;
return n * Power(n - 1);
}
第一题楼上的方法可以实现,虽然效率不高,但如果仅仅是对这几个数字压缩,问题也不大。
其他思路:
1. 如果要压缩的数字较多,建议采用Hashtable来去重。
2. 如果是顺序的,则通过一个状态变量就可以去重。
第二题 也不是很难,如果输出数小于64位的话,用下面函数可以实现,如果再大,见我给的链接
static public ulong Factorial(ulong n)
{
ulong result = 1;
for (ulong i = 1; i <= n; i++)
{
result *= i;
}
return result;
}
http://www.cnblogs.com/eaglet/archive/2009/08/20/1550311.html
第一题可以这样:
var list=new int[]{50,0,2,2,4,4,6,6,7,8,9,9};
List<int> a=new List<int>();
foreach(int i in list)
{
if(!a.Contains(i))
a.Add(i);
}
var array=a.ToArray(); //得到最后的数组