| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4231 人关注过本帖
标题:[求助]如何判断一个数字不是3的幂?
只看楼主 加入收藏
sunyuantz
Rank: 1
等 级:新手上路
威 望:1
帖 子:407
专家分:0
注 册:2006-3-20
收藏
 问题点数:0 回复次数:20 
[求助]如何判断一个数字不是3的幂?
如何判断一个数字不是3的幂?要求方法比较简洁!
注意:请不要用一直除3,看余数这个方法,因为我也会,如果能更高效的化就更好了!
搜索更多相关主题的帖子: 数字 判断 
2007-01-20 01:48
sunyuantz
Rank: 1
等 级:新手上路
威 望:1
帖 子:407
专家分:0
注 册:2006-3-20
收藏
得分:0 
自己先顶一个,我的想法是先编一个3^n的表,然后用折半查找,可是觉得这样依然很浪费时间,因为先要写个出表程序,而且还要从表里查找,这个算法的复杂度是不是太高呢?(本人没学数据结构不会分析,只是看了一点书对这个一知半解,不要见笑)

我不是名人,所以不要签名。等哪天我成名人了......你都认识我了还要签名干嘛!
2007-01-20 02:05
zbqf109
Rank: 1
等 级:新手上路
帖 子:289
专家分:0
注 册:2006-12-31
收藏
得分:0 
用减法行吧?
#include <stdio.h>
int main()
{
int n;
scanf("%d",&n);
while(n>0)
{
n=n-3;
}
if(n==0)
printf("yes.\n")
else printf("no.\n");
return 0;
}

坚决不跟用TC的人打交道!
2007-01-20 09:33
penggf
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2007-1-19
收藏
得分:0 
以下是引用zbqf109在2007-1-20 9:33:48的发言:
用减法行吧?
#include <stdio.h>
int main()
{
int n;
scanf("%d",&n);
while(n>0)
{
n=n-3;
}
if(n==0)
printf("yes.\n");
else printf("no.\n");
return 0;
}

能判断n是否是3的倍数,不是判断是否是3的幂。

2007-01-20 15:12
海蓝啸
Rank: 5Rank: 5
来 自:安徽
等 级:贵宾
威 望:17
帖 子:1611
专家分:0
注 册:2006-4-3
收藏
得分:0 
n % 3 = 0 就行了

这个社会太复杂。。。
2007-01-20 15:48
海蓝啸
Rank: 5Rank: 5
来 自:安徽
等 级:贵宾
威 望:17
帖 子:1611
专家分:0
注 册:2006-4-3
收藏
得分:0 
以下是引用sunyuantz在2007-1-20 2:05:08的发言:
自己先顶一个,我的想法是先编一个3^n的表,然后用折半查找,可是觉得这样依然很浪费时间,因为先要写个出表程序,而且还要从表里查找,这个算法的复杂度是不是太高呢?(本人没学数据结构不会分析,只是看了一点书对这个一知半解,不要见笑)

3^n的表中元素有多少個 ?太不實際了。。。而且就算實現,也狂耗內存,執行時間也比較長。。。有個簡單的%運算符為什麼不用。。。。 n % 3=0就說明是3的倍數了


这个社会太复杂。。。
2007-01-20 15:51
zbqf109
Rank: 1
等 级:新手上路
帖 子:289
专家分:0
注 册:2006-12-31
收藏
得分:0 
以下是引用penggf在2007-1-20 15:12:07的发言:

能判断n是否是3的倍数,不是判断是否是3的幂。

搞笑,请问3的幂是不是3的倍数?


坚决不跟用TC的人打交道!
2007-01-20 15:55
gqchaoyue
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-1-20
收藏
得分:0 
我的想法是判断这个数m的位数(假设是n).然后,
m/(3^n),所得余数再用同样的方法处理.
2007-01-20 17:15
gqchaoyue
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-1-20
收藏
得分:0 
提供一种思路,不知哪位能编出程序来让大家看看.
2007-01-20 17:21
福尔摩斯
Rank: 5Rank: 5
等 级:贵宾
威 望:12
帖 子:4011
专家分:370
注 册:2006-8-15
收藏
得分:0 
以下是引用zbqf109在2007-1-20 15:55:18的发言:

搞笑,请问3的幂是不是3的倍数?

你是数学非常不好呀

你看看12是3的倍数,但不是3的幂

12=2^2 * 3

像9=3^2,像27=3^3才是3的幂

知道不


自我放逐。。。
2007-01-20 17:35
快速回复:[求助]如何判断一个数字不是3的幂?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016997 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved