RUNOOB python练习题3
用来练手的python 练习题,原链接 : python练习实例3
拿到题目就写了如下代码,思路是因为使用**0.5进行开平方操作时,python会将数据类型自动转换为float单精度浮点型。这里利用提取其整数部分,来判断这个数是否是完全平方数。
z = 13
while (z**2 - 168)**0.5 != int((z**2 - 168)**0.5):z+=1x = z**2-268
print(x)
输出结果 :
这个代码问题也很明显,没有办法穷举而只能找出最小的x的值。为了穷举所有的结果,参考答案给出了以下分析 :
假设该数为 x。
1、则:x+100=n2,x+100+168=m2x + 100 = n^2, x + 100 + 168 = m^2x+100=n2,x+100+168=m2, 其中m,n,x均为整数
2、计算等式:m2−n2=(m+n)(m−n)=168m^2 - n^2 = (m + n)(m - n) = 168m2−n2=(m+n)(m−n)=168
3、设置: m+n=i,m−n=j,i∗j=168m + n = i,m - n = j,i * j =168m+n=i,m−n=j,i∗j=168,i 和 j 至少一个是偶数
4、可得: m=(i+j)/2,n=(i−j)/2m = (i + j) / 2, n = (i - j) / 2m=(i+j)/2,n=(i−j)/2,由于m,n都是整数,因此 i 和 j 要么都是偶数,要么都是奇数。
5、从 3 和 4 推导可知道,i 与 j 均是大于等于 2 的偶数。
6、由于 i∗j=168,j>=2i * j = 168, j >=2i∗j=168,j>=2,则 1<i<168/2+11 < i < 168 / 2 + 11<i<168/2+1 。
7、接下来将 i 的所有数字循环计算即可。
标准答案源代码如下:
#!/usr/bin/python
# -*- coding: UTF-8 -*-for i in range(1,85):if 168 % i == 0:j = 168 / i;if i > j and (i + j) % 2 == 0 and (i - j) % 2 == 0 :m = (i + j) / 2n = (i - j) / 2x = n * n - 100print(x)
通过分析题干我们最终确定了遍历的范围,实现了穷举,输出如下:
RUNOOB python练习题3相关推荐
- 数组元素前移后移 RUNOOB python练习题 68
用来练手的python练习题,原题链接: python练习实例68 题干: 有 n 个整数,使其前面各数顺序向后移 m 个位置,最后 m 个数变成最前面的 m 个数 代码如下: import nump ...
- Python打印杨辉三角形 RUNOOB python练习题61
用来练手的python练习题,原题链接: python练习实例61 题干: 打印出杨辉三角形 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 ...
- 符号 RUNOOB python练习题 51
用来练手的python练习题,原题链接: python练习实例51 python中的 & 和 | 使用过程中,变量类型不同,这两个符号的作用也不同. 1. 对于数字变量,&\& ...
- python random随机数 RUNOOB python练习题50
用来练手的python练习题,原题链接: python练习实例50. 该练习题主要包含了random模块随机数的应用,下面给出几个常用的模块内函数. 1. 生成浮点型随机小数 最简单的,就是用rand ...
- lambda函数 RUNOOB python练习题49
用来练手的python练习题,原题链接python练习实例49 该练习题主要是关于lambda函数的使用方法,本文就python中的lambda函数做出一点总结. 1. lambda函数的定义与调用 ...
- RUNOOB python练习题47 交换两个变量值
用来练手的python练习题,原题链接: python练习实例47 题干: 两个变量值互换 在C语言C++中我们要构造一个能交换两个变量值的函数很方便,我们可以使用指针,或者C++中的引用.那么在没有 ...
- RUNOOB python练习题44
用来练手的python练习题,原题链接:python练习实例44 题干: 两个 3 行 3 列的矩阵,实现其对应位置的数据相加,并返回一个新矩阵 使用基本的List类写起来就比较麻烦,需要初始化一个3 ...
- RUNOOB python练习题 39 数组排序
用来练手的python练习题,原题链接: python练习实例39 题干: 有一个已经排好序的数组.现输入一个数,要求按原来的规律将它插入数组中. 这个题目用列表List的sort,append方法非 ...
- RUNOOB python练习题37 对一个序列的数进行排序
用来练手的Python练习题,原题链接: python练习实例37 题干: 对10个数进行排序 在我们使用Numpy模块时,这个问题是非常简单的,下面放出降序排列和升序排列的代码: 升序排列 impo ...
- for else语句小tips : RUNOOB python练习题36
用来练手的python练习题,原题链接: python练习实例36 题干: 求100之内的素数 求某个范围内的素数,和之前的一个例题其实是一样的,上次的同类例题链接如下: python练习实例12 在 ...
最新文章
- python基础知识整理 第一节:入门记录(包含代码与执行结果)
- 《数据科学家养成手册》第十一章------算法学1(穷举,分治,回溯,贪心,迭代)
- 百度前离职员工偶遇同门百度人,轻松通过面试,直呼放水很明显!这样真的好么?...
- Java常用spark的pom.xml与读取csv为rdd到最终join操作+java常用pom.xml文件
- Swift - 判端网络连接状态,连接类型(3G还是Wifi)
- 【jQuery笔记Part1】04-webstorm定义活动模板
- Unity ToLua 中Update的调用流程
- python 数组比较大小_python – 比较两个不同长度的numpy数组
- markdown语法中一些数学符号怎么打
- 破解WIFI密码之密码字典
- 图像分类算法DenseNet论文解读
- Markdown学习指南
- 2008服务器打不开iso文件,Windows Server无法挂载ISO文件:以下是修复它的方法
- Unity3D中如何制作身临其境的3d音效
- idea run with coverage异常
- 软件测试面试-为什么选择软件测试?
- 浏览器打开本地exe
- 背光模块市场现状研究分析与发展前景预测报告
- PR LUT预设 25个漂亮的Instagram风格抖音视频调色预设
- 人脑是量子计算机科学实验,新发现!人类大脑就是台量子计算机:如此神奇