方法一: 采用加法,将数组中所有的元素相加,然后再计算1一直加到n的和,用后者减去前者即得消失的数字
int Missingnum(int* nums, int numsSize)
{
int sum1 = 0;
int sum2 = 0;
for (int i = 0; i < numsSize; i++)
{
sum1 += nums[i];
}
for (int i = 0; i <= numsSize; i++)
{
sum2 += i;
}
return sum2 - sum1;
}
方法二:因为异或相同得零,不同得1,所以使用一个变量将数组中所有元素异或,然后再和1到n进行异或,得到的就是消失的数字
int Missingnum(int* nums, int numsSize)
{
int tmp = 0;
for (int i = 0; i < numsSize; i++)
{
tmp ^= nums[i];
}
for (int i = 0; i <= numsSize; i++)
{
tmp ^= i;
}
return tmp;
}