消える数字
この問題では、
配列numsに0からnまでのすべての整数が含まれている必要がありますが、1つが欠落しています。不足している整数を見つけるためのコードを書いてください。O(n)時間でできますか?
アイデアはある
配列の要素が正確に添字と同じである0からnまでの数字、しているので、あなたは2つの式^ A = 0と0 ^を使用することができ、プログラムに=という。唯一欠けている番号が1回表示され、残りの数字は2回表示されます。
コード
#include <stdio.h>
int FindNum(int str[],int len)
{
int s = 0;
for (int i = 0; i < len; i++)
{
s ^= i;
s ^= str[i];
}
s ^= len;
return s;
}
int main()
{
int str[] = { 1, 9, 8, 7, 6, 4, 3, 2, 10 , 0};
printf("%d", FindNum(&str, sizeof(str) / sizeof(int)));
return 0;
}