寻找3的幂
目录
题目:
题目接口:
题目思路:
第一点:
第二点:
第三点:
代码实现:
普通版本:
提交:
递归版本:
提交:
结语:
题目:
在ledcode刷题网站上,有这样一道题-寻找3的幂:
题目接口:
bool isPowerOfThree(int n){}
题目思路:
第一点:
因为题目中要求输入的是整数,整数分为负整数与正整数,负整数一定不是3的幂。并且在正负两种数之间的0也不是3的幂,所以小于1的整数不是3的幂。
第二点:
1是3的0次幂,所以在n==1时返回true。
第三点:
当n大于1时,如果n是3的幂则n是3的倍数,n/3也是3的倍数,n/3*3也是3的倍数,n/3*3*3也是3的倍数……,在经过许多个n/3以后,如果n变成了1那n就是3的幂,反之就不是。
代码实现:
普通版本:
bool isPowerOfThree(int n){if(n<1)return false;//小于1,return falseif(n==1)return true;//等于1,return tureif(n%3==0){//大于1并且为3的倍数那就进入循环int flag=1;//假设是3的幂while(n){n/=3;if(n%3!=0&&n>1){//当n>1并且n除于3以后不是3的倍数flag=0;//就不是3的幂,flag置为0}}if(flag)return true;}
return false;
}
提交:
递归版本:
bool isPowerOfThree(int n){if(n<1)return false;if(n==1)return true;
if(n%3==0){return isPowerOfThree( n/3);
}
return false;
}
递归算法的思路与普通版本的思路其实基本一样。
提交:
结语:
好了,小牛儿今天的分享就到这里了,如果有错误的话请多多指正。如果对你有帮助的话请给小牛儿点个赞加个关注吧,我会持续分享自己所学到的知识!!!
更多推荐
寻找3的幂
发布评论