Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //gcc 5.4.0
- #include <stdio.h>
- #include <string.h>
- #define MAX 16
- int main()
- {
- int cantNum, dif, i, j = 0,k,h,cont=0,aux=0;
- int matriz[100+1][MAX+1]={};
- do{
- scanf("%d",&cantNum);
- }while((cantNum < 2)||(cantNum > 100));
- do{
- scanf("%d",&dif);
- }while((dif < 0)||(dif > 16));
- unsigned short numero,copiaNumero;
- unsigned short bits[MAX];
- for(k = 0;k < cantNum;k++){
- scanf("%hu",&numero);
- for(i=0; i< MAX ; i++){
- bits[i] = 0;
- }
- copiaNumero= numero;
- i = MAX-1;
- while(copiaNumero != 0){
- bits[i] = copiaNumero%2;
- i--;
- copiaNumero = copiaNumero/2;
- }
- //Pasar los datos a la matriz
- for(i = 0; i < MAX; i++){
- matriz[j][i] = bits[i];
- }
- j++;
- }
- //Impresión de los datos
- //for(i=0;i<cantNum;i++){
- // for(j=0;j<16;j++){
- // printf("%d",matriz[i][j]);
- // }
- // printf("\n");
- //}
- i=0;
- //for(h=(cantNum-1); h > i; h--){
- for(h=0; h < cantNum; h++){
- for(i=h+1; i < cantNum; i++){
- for(j=0; j < MAX; j++){
- if(matriz[i][j] != matriz[h][j]){
- aux++;
- }
- }
- if(aux == dif){
- cont++;
- }
- aux=0;
- }
- //}
- }
- printf("%d",cont);
- return 0;
- }
Add Comment
Please, Sign In to add comment