求一个数是不是2的幂,如果是,是几次幂

来源:互联网 发布:淘宝抢单神器 编辑:程序博客网 时间:2024/04/29 08:46

今天遇到的一个面试题,贴出来大家看看
求一个数是不是2的幂,如果是,是几次幂?不可以用for,while,goto和C库函数。请用C编写。
本人写了个,用的是递归,贴出来,大家看看,有不对的,还请帮忙指正。

返回-1表示不是2的幂,其他值为2的幂。

 

int func(int x){    if (1 == x) {        return 0;    }    else if (0 == x || 0 != (x % 2)) {        return -1;    }     int ret = func(x / 2);    if (-1 == ret) {         return -1;    }    else {        return ret + 1;    }}

 

原创粉丝点击