紧急求救了啊,怎样判断一个integer类型的数字是否是2的乘方呢???级急急啊,在线等待~~~
最好有代码阿,我现在做的这个项目特别急啊,请各位帮忙了啊~~~~
问题解决立马散分!!!
问题点数:60、回复次数:13Top
1 楼bcbhj(寒(泉泉剑剑))回复于 2003-09-02 19:19:08 得分 5
modTop
2 楼huangxinru(键盘手)回复于 2003-09-02 19:20:15 得分 15
自己写个函数呗。
//参数
long n
do while n>1
n=n/2
if n<>int(n) then return false
loop
if n=1 then
return true
else
return false
end if
没测过,随手写的
Top
3 楼aty283(白冰)回复于 2003-09-02 19:20:29 得分 5
mod(,2)Top
4 楼skylake888(永不止步)回复于 2003-09-02 19:20:43 得分 0
晕,楼上的兄弟能不能具体一点啊,谢谢啦~~~~Top
5 楼bcbhj(寒(泉泉剑剑))回复于 2003-09-02 19:23:24 得分 0
在help里找mod函数,看看就知道怎么用了啊Top
6 楼guxing(孤星)回复于 2003-09-02 19:29:40 得分 15
Long n,m
do while n>1
if mod(n,2)>0 then return false
m=n/2
IF m*2 <> n THEN Return False
n = m
loop
if n=1 then
return true
else
return false
end if
Top
7 楼skylake888(永不止步)回复于 2003-09-02 19:30:05 得分 0
晕,是想知道是不是 2 的乘方阿,不是判断能不能被2整除那么简单的~~~~Top
8 楼guxing(孤星)回复于 2003-09-02 19:38:15 得分 0
晕,你把上面测试一下再说吗?
能实现你的功能,要尊重别人的劳动Top
9 楼skylake888(永不止步)回复于 2003-09-02 19:42:02 得分 0
呵呵,不好意思阿,当时我没有刷新,所以没看到你的回帖,抱歉了~~~
孤星老兄 你的代码我测试了,那个return false 还有 return true好像不行,报错~~~Top
10 楼skylake888(永不止步)回复于 2003-09-02 20:29:32 得分 0
好像按 孤星 的代码 运行以后的 n 都等于1 啊,还是没有完全判断出来 :(Top
11 楼klbt(快乐白兔)回复于 2003-09-02 22:23:12 得分 20
给你做一个简单函数:
Integer i
do while i > 1
if i / 2 <> Int(i / 2) then
Return -1
else
i = i / 2
end if
loop
Return 1Top
12 楼skylake888(永不止步)回复于 2003-09-02 22:23:26 得分 0
好了,用了别的方法,问题搞定了,散分 :)Top
13 楼skylake888(永不止步)回复于 2003-09-02 22:24:36 得分 0
谢谢大家拉,接分咯~~~~~Top



