zoukankan      html  css  js  c++  java
  • leetcode 326. Power of Three

    传送门

    326. Power of Three

    My Submissions
    Total Accepted: 23021 Total Submissions: 64515 Difficulty: Easy

    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.

    Subscribe to see which companies asked this question

    Hide Tags
     Math
    Show Similar Problems
     
     
    题意:
    给一个整数n,判断是否是3的幂
     
     1 class Solution {
     2 public:
     3     bool isPowerOfThree(int n) {
     4         double ans = log(n) / log(3);
     5         double ans2 = floor(ans + 0.5);
     6         if(fabs(ans - ans2) < 1e-10 ){
     7             return true;
     8         }
     9         else{
    10             return false;
    11         }
    12     }
    13 };

    改进一下:

     1 class Solution {
     2 public:
     3     bool isPowerOfThree(int n) {
     4         double ans = log(n) / log(3);
     5         double ans2 = round(ans);  //round函数做四舍五入
     6         if(fabs(ans - ans2) < 1e-10 ){
     7             return true;
     8         }
     9         else{
    10             return false;
    11         }
    12     }
    13 };

    看了这篇博客的思路,试了一下第三种方法

    http://blog.csdn.net/zhoudayang2/article/details/50577721

    还有要注意边界条件:

     1 class Solution {
     2 public:
     3     bool isPowerOfThree(int n) {
     4         if(n < 1){
     5             return false;
     6         }
     7         double ans = log(n) / log(3);
     8         double ans2 = round(ans);  //round函数做四舍五入
     9         int m = pow(3,ans2);
    10         if(n == m){
    11             return true;
    12         }
    13         else{
    14             return false;
    15         }
    16     }
    17 };
  • 相关阅读:
    【NOI2015】荷马史诗
    Codeforces Round #415 (Div. 2)
    Codeforces Round #408 (Div. 2)
    bzoj3230
    poj1743
    poj1226
    bzoj1295
    bzoj1294
    bzoj1296
    bzoj1239
  • 原文地址:https://www.cnblogs.com/njczy2010/p/5227703.html
Copyright © 2011-2022 走看看