今天遇到一个题目,某班级一共有30个学生,编号从1-30,今天3,5,8,10,20,25,27几个人没有来上课
请用最小的数据存储空间来记录当前的实际上课量的信息(不包括老师)
我就是不知道这个所谓的最小的数据存储空间是什么,方便的话把这个程序实现也写一下吧。

解决方案 »

  1.   

    数据结构里面好想就有一个好象是三元数组来表示的a[i,j,v];其中:i是横坐标,j是纵坐标,v是对应位置的值,这里只记录了非0值(少数/不上课的人的位置).相关的看看数据结构吧  我也忘了
      

  2.   

    int student=0x1af7fd6b;//1,1010,1111,0111,1111,1101,0110,1011
    for(int i=1;student!=0;student>>>=1,i++)
    if((student & 0x1)==0) System.out.println(i+" 没有上课");
      

  3.   

    用一个int就够了。
    code:
    ===
    int studentHasClass = Integer.MAX_VALUE; //所有的人都来上课了;用-1也可以
    //i没有来
    studentHasClass &= ~(1<<i);
    //i是否来了
    if((studentHasClass & (1<<i)) >0)
      System.out.println(i + "来了");
    else System.out.println(i + "没来");
      

  4.   

    int studentHasClass = Integer.MAX_VALUE; //所有的人都来上课了;用-1也可以
    //i没有来--------------------是设置成i没有来
    studentHasClass &= ~(1<<i);
    //i来了:设置成i来了
    studentHasClass |= (1<<i);
    //i是否来了
    if((studentHasClass & (1<<i)) >0)
      System.out.println(i + "来了");
    else System.out.println(i + "没来");