|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ [求助]如何判断一个数字不是3的幂?
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
4224
人关注过本帖
标题:
[求助]如何判断一个数字不是3的幂?
取消只看楼主
加入收藏
sunyuantz
等 级:
新手上路
威 望:
1
帖 子:407
专家分:0
注 册:2006-3-20
楼主
收藏
问题点数:0 回复次数:5
[求助]如何判断一个数字不是3的幂?
如何判断一个数字不是3的幂?要求方法比较简洁!
注意:请不要用一直除3,看余数这个方法,因为我也会,如果能更高效的化就更好了!
搜索更多相关主题的帖子:
数字
判断
2007-01-20 01:48
举报帖子
使用道具
赠送鲜花
sunyuantz
等 级:
新手上路
威 望:
1
帖 子:407
专家分:0
注 册:2006-3-20
第
2
楼
收藏
得分:0
自己先顶一个,我的想法是先编一个3^n的表,然后用折半查找,可是觉得这样依然很浪费时间,因为先要写个出表程序,而且还要从表里查找,这个算法的复杂度是不是太高呢?(本人没学数据结构不会分析,只是看了一点书对这个一知半解,不要见笑)
我不是名人,所以不要签名。等哪天我成名人了......你都认识我了还要签名干嘛!
2007-01-20 02:05
举报帖子
使用道具
赠送鲜花
sunyuantz
等 级:
新手上路
威 望:
1
帖 子:407
专家分:0
注 册:2006-3-20
第
3
楼
收藏
得分:0
昨天做这题做到今天5点,所以睡到现在才起,看了大家讨论觉得很不错,首先5楼的n%3==0肯定不行因为这是求3的倍数不是求3的冪,我只想求3的冪,其他不想.11楼其实我也看过这些,但觉的有些深,看不懂.我有一个思路但估计实现不了思路如下:
设一个数为N,且N为3的冪,N=3^n,log(3,N)=n,ln3/lnN=n,若两数相除为整数则一定为三的冪,不知对不对
我不是名人,所以不要签名。等哪天我成名人了......你都认识我了还要签名干嘛!
2007-01-20 18:22
举报帖子
使用道具
赠送鲜花
sunyuantz
等 级:
新手上路
威 望:
1
帖 子:407
专家分:0
注 册:2006-3-20
第
4
楼
收藏
得分:0
晕死,犯了个天大的错误,浮点小数是无法比较的也就是2.000000000和2.0000000001是无法比较的,这下我没辙了,唉!
我不是名人,所以不要签名。等哪天我成名人了......你都认识我了还要签名干嘛!
2007-01-20 18:47
举报帖子
使用道具
赠送鲜花
sunyuantz
等 级:
新手上路
威 望:
1
帖 子:407
专家分:0
注 册:2006-3-20
第
5
楼
收藏
得分:0
谢谢楼上的各位,这题我想出来解法如下:
#include<stdio.h>
int main()
{
int x=3,n;
scanf("%d",&n);
if(n==3) printf("yes!");
else
{
do
{
x+=x*2;
}while(x<n);
if(x==n) printf("yes");
else printf("no");
}
getch();
return 0;
}
ps:3的冪可以看成是3*3……*3(n个3相乘),3的2进制为11,所以3*3=11*11即110+11,同理27=9*3=1001*11=10010+11,可以得出如下结论,3的冪可以写成N=3^(n-1)*2+3^(n-1),最后让N无限逼近目标M,看M是否为N就可以了
就是不知道执行时间是多少,不知道谁可以帮我做个测试,感激不禁啊!
我不是名人,所以不要签名。等哪天我成名人了......你都认识我了还要签名干嘛!
2007-01-20 22:14
举报帖子
使用道具
赠送鲜花
sunyuantz
等 级:
新手上路
威 望:
1
帖 子:407
专家分:0
注 册:2006-3-20
第
6
楼
收藏
得分:0
17楼,有错误吗?我用的是win-tc,你试试去到getch();试试,如果还有错误能贴出来让我看看吗?20楼的强制取整有点意思,回头试试看,这说不定也是一种方案!
我不是名人,所以不要签名。等哪天我成名人了......你都认识我了还要签名干嘛!
2007-01-21 23:13
举报帖子
使用道具
赠送鲜花
6
1/1页
1
快速回复:
[求助]如何判断一个数字不是3的幂?
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.031557 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved