如题

解决方案 »

  1.   

    补充一下: 我想根据一个二进制数组,来从一个另对象数组中检索出对应的对象,如
    二进制数组:int[]{1,0,0,1,1,0}
    对象数组:String[]{"a","b","c","d","e","f"}得到的结果是{"a","d","e"}
      

  2.   

    package com.abc.pkg1;import java.util.ArrayList;public class ClassOne {

    static java.util.List<Integer> tonum = new ArrayList<Integer>(); 
    public static void main(String [] args){
    System.out.println(transform(7));
    }
    public static String transform(int num){
    int remainder = num;
    StringBuffer numberTwo = new StringBuffer();
    while(remainder !=0 && remainder!=1){
    int g =(remainder%2);
    tonum.add(g);
    if(g==1){
    remainder =(remainder - 1)/2;
    }else{
    remainder =remainder/2;
    }



    }
    if(remainder==1){
    tonum.add(1);
    }
    for(int i=0;i<tonum.size();i++){
    numberTwo.append( tonum.get(i).toString());
    }


    return numberTwo.toString();

    }

    }
      

  3.   

    如果只是计算二进制序列中“1”的个数,那 Hacker's Delight 中有一个复杂度为 O(1) 的算法。但是如果想得到在第几位上出现过“1”那不用遍历估计做不到。
      

  4.   

    不遍历(traverse)可以做到么?看看...
      

  5.   

    位数num初始为第0位。for循环
    {
        余2计算判断是否等1,等1则记下位数,存入vector或输出。
        右移。
        位数num++。
    }