1-1000放在含有1001个元素的数组中,只有唯一的一个元素值重复,其它均只出现
一次。每个数组元素只能访问一次,设计一个算法,将它找出来;不用辅助存储空
间,能否设计一个算法实现?
#include <iostream>
using namespace std;
template<typename T,int index>
struct SumArr
{
static int GetValue(T* arr)
{
return arr[index] + SumArr<T,index-1>::GetValue(arr);
}
};
template<typename T>
struct SumArr<T,0>
{
static int GetValue(T* arr)
{
return arr[0];
}
};
int main(void)
{
int arry[11] = {1,2,3,4,5,6,7,8,9,10,2};
printf("%d",SumArr<int,10>::GetValue(arry) - 11*5);
getchar();
return 0;
}