Leetcode 326:3的幂

判断是否是3的幂次方


问题描述:
给定一个整数,写一个函数来判断它是否是 3 的幂次方。

示例 1:

输入: 27
输出: true

示例 2:

输入: 0
输出: false

示例 3:

输入: 9
输出: true

示例 4:

输入: 45
输出: false

解题思路:

  找出数字 n 是否是数字 b 的幂的一个简单方法是,n%b只要余数为 0,就一直将 n 除以 b。如果n是b的幂,那么最终结果肯定是1.
eg.(1)1%3 = =1(true);
     (2)3%3= =0         3/3== 1(true)
     (3)45%3= =0   15%3==0   5%3= =2(false)

在这里插入图片描述
代码如下:

 #include<iostream>
 #include<math.h> 
 using namespace std;
 bool isPowerOfThree(int n) {
		if(n<=0){     //小于0返回false
			return false;
		}
		while(n%3==0){
			n/=3;    //一直将 n 除以 3
		}
		return n==1; //判断n的最终结果是否为1
}
int main(){
   	int n;
   	while(cin>>n){
   		if(isPowerOfThree(n)){
   			cout<<"true"<<endl;
   			cout<<"--------------------------"<<endl;
		}else{
			cout<<"false"<<endl;
			cout<<"--------------------------"<<endl;
		}
	}   	
}
发布了7 篇原创文章 · 获赞 4 · 访问量 8173

猜你喜欢

转载自blog.csdn.net/Milan_1in/article/details/105017272
今日推荐