规定内存限制为3mb
在一个数列里n个数,输出不为m个数字的那个数
5 3
2 2 3 3 3 输出3
9 2
1 1 3 2 2 3 3 4 4 输出3
9 4
1 2 2 1 2 1 2 3 1 输出3
开a[64]的数组记录二进制转化好的数
最后对该数组取余%m
在对应的/(n%m)
数组转化为数字即可
View Code
#include<stdio.h>
#include<string.h>
int a[64];
int main()
{
int n,m;
while(scanf("%d%d",&n,&m)!=EOF)
{
int i,temp,add;
memset(a,0,sizeof(a));
for(i=1;i<=n;i++)
{
scanf("%d",&temp);
add=0;
while(temp)
{
if(temp%2==1)
a[add]++;
temp=temp/2;
add++;
}
}
int p=n%m;
for(i=0;i<=add;i++)
{
a[i]=a[i]%m;
a[i]=a[i]/p;
}
int all=0;
for(i=0;i<=add;i++)
{
if(a[i])
all+=1<<i;
}
printf("%d\n",all);
}
}