读书人

两个面试题。求圣人解答

发布时间: 2012-09-06 10:37:01 作者: rapoo

两个面试题。求高人解答
1. 设计数据库时,n维,如何设计。

例如[省份][城市][网吧],这是三维关系,它的表也应该有三个,网吧有外键引用城市,城市有外键应用省份,这个规律就是下层的要有一外键去引用上层。



2. 输入某个unsigned int,判断其二进制形式中有多少个1

例如:5有2个1,因为5的二进制形式是101;7有3个1,因为7的二进制是111

没有思路。求高人贴答案。谢谢。

[解决办法]

Java code
public static void main(String[] args) {        int num = 7;        //new Demo9().getWeek();        String str=Integer.toBinaryString(num);        System.out.println("数num的二进制为:"+str);        int sum = 0;        for (int i = 0; i < str.length(); i++) {            System.out.println((int)(str.charAt(i)));            if(49 ==(int)(str.charAt(i)))                 sum++;            }        System.out.println("数num的包含1的个数为:"+sum);    }
[解决办法]
回答第一题吧:
如果一张表;写出表结构
id 父节点 name
1 0 湖南
2 1 长沙
3 1 邵阳
4 2 芙蓉区
5 3 邵阳县
……下面以此类推;根节点默认为0;子节点的父节点为节点id.
多张表也就是外键关联而已
[解决办法]
2、
Java code
public static int bitscount(int x){     int count = 0;     for(; x != 0; x >>= 1){         if((x & 0x1) != 0)            count++;     }     return count;} 

读书人网 >J2EE开发

热点推荐