首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

两个面试题。求圣人解答

2012-09-06 
两个面试题。求高人解答1.设计数据库时,n维,如何设计。例如[省份][城市][网吧],这是三维关系,它的表也应该有

两个面试题。求高人解答
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;} 

热点排行