题目大意

让你判断一个int是否为3的幂;

最简单的思路

C++

class Solution {
public:
bool isPowerOfThree(int n) {
for(long long i=1;i<=n;i=i*3LL)
{
if(i==n) return true;
}
return false;
}
};

Python

第一种写法…很低效..因为不会类似C++的for..

class Solution(object):
def isPowerOfThree(self, n):
"""
:type n: int
:rtype: bool
"""
for x in range(30):
if 3**x==n:
return True;
return False;

第二种写法 类似C++的,但是只用用while实现

Python的缩进真是让人理解不能 空格TAP混用不行??????

需要修改Sublime的设置

class Solution(object):
def isPowerOfThree(self, n):
x=1;
while x <= n:
if x==n :
return True;
x=x*3;
return False;

sublime设置

sublime 默认是tab 缩进,修改成4个空格缩进 “首选项” —>”设置–更多” —>’”特定的语法–用户”

添加如下内容 点击(此处)折叠或打开 {

“tab_size”: 4,

“translate_tabs_to_spaces”: true }

要求不准用循环

1.利用对数函数,再判断是否为整数。

C++

精度误差要控制的很细 1e-10才能过,这样的程序速度快,但是存在一定误差。

注意取整的时候要加一个0.5才是 四舍五入!!!刘书上说过。

class Solution {
public:
bool static isPowerOfThree(int n) {
double a=log(n)/log(3);
printf("%lf\n",a);
int b=(int)(a+0.5);
printf("%d\n",b);
if(abs(a-b)<1e-10) return true;
else return false ;
}
};

Python

round(val,位数) 四舍五入

Python 中math.log() 接收到0会报错

class Solution(object):
def isPowerOfThree(self, n):
if n>0:
a=math.log(n)/math.log(3.0);
else :
a=0.5;
b=round(a,0)
if abs(a-b)<1e-10:
return True;
else:
return False;

终极想法

还有一种想法就是Python打表 switch ,应该是最简单的了。

[python语法巩固][leetcode326][Power of Three]的更多相关文章

  1. 对 Python 语法不够了解导致的 bug

    对 Python 语法不够了解导致的 bug. `in` '20' in '11264,6144,4096,3072,2048,1024,300,30' Out[7]: True a_list = ' ...

  2. python 笔记2:python语法基础

    python语法学习笔记: 1 输入输出 input(),print(). name = input('input your name : ')print('hello ,'+name)print(& ...

  3. python语法快速入门(1)

    http://www.runoob.com/python/python-tutorial.html Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节.类似于PHP和Perl语言 ...

  4. python语法笔记(四)

    1.对象的属性     python一切皆对象,每个对象都可能有多个属性.python的属性有一套统一的管理方案. 属性的__dict__系统     对象的属性可能来自于其类定义,叫做类属性:还可能 ...

  5. python语法-[with来自动释放对象]

    python语法-[with来自动释放对象] http://www.cnblogs.com/itech/archive/2011/01/13/1934779.html 一 with python中的w ...

  6. wxpython 支持python语法高亮的自定义文本框控件的代码

    在研发闲暇时间,把开发过程中比较重要的一些代码做个珍藏,下面的代码内容是关于wxpython 支持python语法高亮的自定义文本框控件的代码,应该是对大家也有用. import keywordimp ...

  7. Python语法的转义字符

    Python语法的转义字符 转义字符 说 明 \ 续行符 \n 换行符 \0 空  \t 水平制表符,用于横向跳到下一制表位 \'' 双引号 \' 单引号 \\ 一个反斜杠 \f 换页 \0dd 八进 ...

  8. Python语法教程总结规范

    Python语法易错点记录 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享. ...

  9. 初试Python语法小试牛刀之冒泡排序

    Python很火,心里很慌,没吃过猪肉,也要见见猪走路. 看了几天Python的语法,大概初步了解了一点点,https://www.liaoxuefeng.com/wiki/0014316089557 ...

随机推荐

  1. Android应用程序资源的编译和打包过程分析

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8744683 我们知道,在一个APK文件中,除了 ...

  2. Rhythmbox乱码的解决的方法

    近期尝试 Listen 和 Banshee 才发现,Rhythmbox 上出现的 mp3乱码问题依然,并且更加严重,想要彻底弄清和解决必须搞清两点,第一, mp3 标签类型和编码,第二,各种播放器对 ...

  3. css2如何设置全屏背景图片

    每次在做一个网站后台登陆页面的时候,当UI给我一张背景是不规律的背景图片,但是在设置为背景时,总会遇到屏幕大小的问题,导致背景图片有可能平铺.这样UI的效果达不到也会很难看. 本来我想用body{ba ...

  4. Func 委托 和 Action 委托 初步谈论

    继上篇EventHandler之后,继续填坑,简单了解下Func<TResult> 委托 和 Action 委托. msdn对于两者的解释: Func<TResult>:封装一 ...

  5. Code Complete阅读笔记(三)

    2015-05-26   628   Code-Tuning Techniques    ——Even though a particular technique generally represen ...

  6. Android 使用monkey自动测试

    很简单的一个monkey使用流程: 首先创建一个monkey脚本test.txt,例如一个简单的反复测试拍照功能的脚本: # Start of Script type= user count= 49 ...

  7. latex 模版

    texlive2012 通过 \documentclass[a4paper]{article} %\documentclass[twocolumn]{article}   %\usepackage{g ...

  8. hdu1466 计算直线的交点数

    题意: 平面上有n条直线,且无三线共点,问这些直线能有多少种不同交点数. 比如,如果n=2,则可能的交点数量为0(平行)或者1(不平行). 分析: DP 设状态:f[i][j]表示i条直线能否产生j个 ...

  9. 把EXCEL列号数字变成字母

    把Excel 列号数字变成字母 private static string ToName(int index) { if (index < 0) { throw new Exception(&q ...

  10. C# 导出Excel Aspose.Cells

    public void ExportExcel() { Workbook workbook = new Workbook(); //工作簿 workbook.Worksheets.Clear(); w ...