leetcode 326. Power of Three(不用循环或递归) Given an integer, write a function to determine if it is a power of three. Follow up: Could you do it without using any loop / recursion? 题意是判断一个数是否是3的幂,最简单的也最容易想到的办法就是递归判断,或者循环除. 有另一种方法就是,求log以3为底n的对数.类似 如果n=9,则…
来源:据说是某一年某个公司的面试题 题目:求1+2+…+n, 要求不能使用乘除法.for.while.if.else.s witch.case 等关键字以及条件判断语句(A?B:C) 分析:这题本来很简单,但是不能用循环和条件判断语句.但是理论上所有的递归都可以转化为循环,那是否可以用递归代替循环呢?照着这个思路走下去,貌似可以.可是用递归的话,递归怎么终止呢?这就得在return语句中做文章了.最让人奔溃的是不让用乘除法.但是乘法本质上是加法的累加. 思路: 把循环化为递归. 乘法改为递归实现…
Given an integer, write a function to determine if it is a power of three. Follow up:Could you do it without using any loop / recursion? Credits:Special thanks to @dietpepsi for adding this problem and creating all test cases. 给一个整数,写一个函数来判断此数是不是3的次方…
翻译 给定一个整型数,写一个函数决定它是否是3的幂(翻译可能不太合适-- 跟进: 你能否够不用不论什么循环或递归来完毕. 原文 Given an integer, write a function to determine if it is a power of three. Follow up: Could you do it without using any loop / recursion? 分析 题意我事实上不是满懂,比方说12究竟可不能够呢?还是说仅仅有:3.9.27.81这样的才行…
326. Power of Three Given an integer, write a function to determine if it is a power of three. Follow up: Could you do it without using any loop / recursion? 思路:看这个数取以3为底的对数结果是否为整数,C++中只有自然对数函数log()和以10为底的对数函数log10(),所以要借助换底公式.此处用自然对数会有精度问题,用以10为底的对数…
Problem: Given an integer, write a function to determine if it is a power of three. Could you do it without using any loop / recursion? Summary: 用非循环/递归的方法判断数n是否为3的整数幂. Analysis: 1. 循环:将n逐次除以3,判断是否为3的整数幂. class Solution { public: bool isPowerOfThree(…
原题: Given an integer, write a function to determine if it is a power of three. Follow up: Could you do it without using any loop / recursion? 这个题目本身没有任何难度,也是easy等级,但是题目要求不能使用循环和迭代,解法如下: import math class Solution(object): def isPowerOfThree(self, n):…
题目描述: Given an integer, write a function to determine if it is a power of three. Follow up:Could you do it without using any loop / recursion? 解题思路: 对给定的数求以3为底的对数,然后再将结果用于3的次幂,看是否与原来的数相同. 代码如下: public class Solution { public boolean isPowerOfThree(in…
判断一个数是否是3的n次幂 这里我用了一点巧,所有的int范围的3的n次幂是int范围最大的3的n次幂数(即3^((int)log3(MAXINT)) =  1162261467)的约数 这种方法是我目前觉得是最好的,不容易出错,其他的方法因为精度问题而很容易错. class Solution { public: bool isPowerOfThree(int n) { ) %n==; else return false; } };…
这两题我放在一起说是因为思路一模一样,没什么值得研究的.思路都是用对数去判断. /** * @param {number} n * @return {boolean} */ var isPowerOfThree = function(n) { return (Math.log10(n) / Math.log10(3)) % 1 === 0; }; /** * @param {number} num * @return {boolean} */ var isPowerOfFour = functi…