龙空技术网

力扣之 4 的幂 & 3 的幂 & 2 的幂(递归思想)

水冗水孚 83

前言:

而今大家对“js怎么判断一个数是不是整数”大约比较重视,姐妹们都需要学习一些“js怎么判断一个数是不是整数”的相关资讯。那么小编也在网络上汇集了一些有关“js怎么判断一个数是不是整数””的相关内容,希望小伙伴们能喜欢,看官们快快来了解一下吧!

题目描述

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

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

示例 1:

输入: n = 16输出: true

示例 2:

输入: n = 5输出: false

示例 3:

输入: n = 1输出: true

力扣原题目地址 4 的幂:

类似题目还有3的幂,2的幂,用递归思想解决,一个意思

力扣原题目地址 3 的幂:

力扣原题目地址 2 的幂:

思路分析整数n如果是0,肯定不是4的幂了,如果是1,就是40次幂这样的话,我们就把整数n不停的除以4,如果除到最后的结果是1,那么是幂。如果除的话,得到的数是一个小数,那么就肯定不是幂了

这里又延伸出一个问题,就是,js中如何判断一个数,是不是整数?

没关系,语言的设计者们,早已经考虑到这种情况了,于是给我们一个api叫做:Number.isInteger(),用于判断一个数字是不是整数,如下:

Number.isInteger(0);         // trueNumber.isInteger(1);         // trueNumber.isInteger(-100000);   // trueNumber.isInteger(0.1);       // falseNumber.isInteger(Math.PI);   // falseNumber.isInteger(Infinity);  // falseNumber.isInteger(-Infinity); // falseNumber.isInteger("10");      // falseNumber.isInteger(true);      // falseNumber.isInteger(false);     // falseNumber.isInteger([1]);       // false

这样的话,咱们直接拿来使用即可

代码附上

var isPowerOfFour = function (n) {    if (n === 0) { // 0肯定不是,直接返回false        return false    }    else if (n == 1) { // 4的0次方等于1,是返回true        return true    } else {        n = n / 4 // 4的幂、3的幂、2的幂        if (Number.isInteger(n)) { // 如果是整数,就继续递归            return isPowerOfFour(n) // return的结果为递归执行的结果        } else { // 如果不是整数,就说明绝对不是4的n次方            return false        }    }};
提交结果图

嗯,凑合还行...

3的幂、2的幂的题目,改一下值即可

标签: #js怎么判断一个数是不是整数