El número de binarios 1: 3 título

Descripción Asunto:

  Por favor, diseñar una función, un número de entradas, salidas el número 1 indica el número de dos, Ltd.   

   Ejemplo: 9 se representa como sistema de dos 1001 tiene dos 1

Ideas de resolución de problemas:

  Se trata de los principales sitios de prueba pregunta utilizando las operaciones de conversión y de bits binarios flexibles. He enumerado tres formas de lograrlo :

  Método a : eliminación Método 1 (Principio: N - 1 puede ser N 1 del bit menos significativo es 0, las características de la parte posterior 1 es el bit menos significativo de 0, N y (N - 1) puede ser eliminado a un bit menos significativo, la última vez hasta la eliminación de un 1, el resultado es 0)

  Método dos : 32 ciclos, usando aritmética de 1 bit y la comparación bit a bit Comparación

  Método tres : cuando la conversión de binario, para acumular el resto es 1  

 @ Método A: Método 1 eliminación 
    pública  estática    int F ( int n-) {
         int COUNT = 0 ;
         el tiempo (! = N-0 ) {// cuando el resultado es cero, indicando que nadie, no borra 
            n- = & N- (N- 1);       // borrado método 1 núcleo 
            recuento ++;          // cada vez que un recuento de borrado más 1 
        }
         retorno recuento; 
    }
 @ Método 2: Uso de 32 ciclos, la comparación bit a bit 
    pública  estática  int F2 ( int n-) {
         int COUNT = 0 ;
         para ( int i = 0; I <32; I ++ ) {
             IF (((n - >> I) & 1) == 1) { // correcto que poco, y dejar un poco con la operación más bajo. 
                ++ COUNT ; 
            } 
        } 
        retorno COUNT; 
    }
@ Método tres: cuando el interruptor binario, el resto de la estadística 1 
    pública  estática  int F3 ( int n) {
         int count = 0 ;
         int Shang = N-; 
         int Yu;
         al mismo tiempo (! Shang = 0) {   // decimal núcleo de conmutador binario 
            Yu Shang% = 2;         // para encontrar resto 
            Shang Shang = / 2;     // entonces cociente 
            IF (Yu == 1. ) {         
                COUNT ++;     // para el resto de una estadística 
            } 
        } 
        retorno COUNT; 
    }

 

Supongo que te gusta

Origin www.cnblogs.com/songchengyu/p/12590308.html
Recomendado
Clasificación