Python题目求解

期练习题(面试真题模拟)

、关于字符串下列说法错误的是

、既可以用单引号,也可以用双引号创建字符串

、在三引号字符串中可以包含换行回车等特殊字符

、以下不能创建一个字典的语句是

、以下何者是不合法的布尔表达式:

如果单是解这么一个只有两个变量的问题,真的先选价值最高那个,选到不能选了再补充另一种就是了。

但是如果你要解多于两个变量的问题,你还是把他建模成线性规划,直接用线性规划的工具解吧。

Step 0: 什么是线性规划。给你个wiki链接:

Step 1:把问题建模成线性规划,包括目标函数和限制条件。先用笔在纸上写。

Step 2:找一个solver,把模型按照solver的规则写进去然后解就是了。如果你一定要用python,可以用一些package,例如

我没用过python解,所以具体不清楚。真要解决问题的话,线性规划的算法不要自己编,会慢很多倍。但是想熟悉算法,自己编编倒是挺好的,你会看到里头有各种trick(小技巧)来提速或者解决特殊情况。

Step 3: 看看得到的解现不现实,能不能用正常人思维理解。明显不对的话回到第一步继续吧。

版权声明:本文为博主原创文章,遵循 版权协议,转载请附上原文出处链接和本声明。

问题描述:用十进制计算30的阶乘,然后把结果转换成三进制表示,那么该进制表示的结果末尾会有多少个连续0?

解析:作为笔试题的话,要想按照题意先把阶乘结果计算出来再转换成三进制最后再数0的个数,时间肯定来不及。也就是说,应该是有更简单的方法。以我们最熟悉的十进制为例,一个数乘以10相当于左移1位而右边补0;了解二进制计算的朋友们应该知道,对一个二进制数乘以2相当于左移1位而右边补0。恭喜,这对于任意素数进制都是成立的。也就是说,把从1到30的整数简单因数分解一下,看看有多少个3,那么题目中最终计算结果末尾就有多少个0。

下面的代码有4个函数,其中第二个函数调用了第一个函数,使用的是传统笨办法;第四个函数调用了第三个函数,使用的上面描述中的第二个方法。

代码看不懂的地方随时可以留言,更欢迎发现和指出代码中可能存在的bug!

我要回帖

更多关于 Python 实例 的文章

 

随机推荐