栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

递归实现3的幂

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

递归实现3的幂

题目概述:
给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true ;否则,返回 false 。

整数 n 是 3 的幂次方需满足:存在整数 x 使得 n == 3x

示例:

(1)
输入:n = 27
输出:true
(2)
输入:n = 0
输出:false

解题思路:
本题,要求3的幂次方,那么我们可以考虑要求输入的数字为3的幂次方那么只要该数字取余3余数为0,且该数取余3的整数次再取余3一直这样下去,知道最后的除数为1时且余数为0,则该数字为3的幂次方,但是这里需要注意两个特殊的数字1和0,因为1是3的0次幂,那么就要特殊讨论,0不是3的幂次,如果不特殊讨论0,那么一直递归会使得栈溢出。

代码如下所示:

class Solution {
    public boolean isPowerOfThree(int n) {
        //找出特殊的0和1(3的0次幂)
        if (n==0){
            return false;
        }
        if (n==1){
            return true;
        }
        //3的多次幂
        if (n%3==0){
            //除以3余数为0,那么就获得整数
            n = n/3;
            if(n==1){
                return true;
            }else {
               return isPowerOfThree(n);
            }
        }else{
            return false;
        }
    }
}

执行通过截图:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/703504.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号