python入门经典100例-【python】编程语言入门经典100例--3

1 #题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

代码:2 i = 0

3 j = 0

4 while (i >= 0):

5 m = i*i

6 while (j*j <= m + 168):

7 if ((m + 168) == j*j):

8 print('这个整数是:%d'%(i-100))

9 i = -2

10 break

11 j += 1

12 i += 1

13

运行结果:[root@HK code_100]# python code_3.py

这个整数是:-99

[root@HK code_100]#

代码解释:这个题目的代码不多,但是逻辑性较强,做这种题我总结的是先用数学的方式计算出来,

然后用代码的形式表示出数学的计算过程

解题思路是:

1)从i(i=0)开始每个数字都算出它的完全平方数m

2)(m+168)如果也是一个完全平方数,那么这个数字就是(i-100)

2 i = 0

3 j = 0

4 while (i >= 0): #完全平方数是大于0的,这个条件原则上是一直成立并且执行的

5 m = i*i # 从0开始(i=0)计算出i的完全平方数为m

6 while (j*j <= m + 168): # while循环,条件为j的完全平方数小于或者等于(m+168),因为j是递增的,完全平方数也是递增,如果j*j > (m_168),再循环下去没有意义

7 if ((m + 168) == j*j): # 在循环中,如果匹配到j*j==(m+168),说明(m+168)是j的完全平方数,那么题目的两个条件就都匹配了

8 print('这个整数是:%d'%(i-100)) 打印出这个数字为(i-100)

9 i = -2 # 一旦找到了这个要求的数字,那么就需要跳出整个程序,这里有两层循环,break只能跳出内层的循环,

python中跳出多重循环的方式有很多,这里选取一种条件判断,一旦符合要求之后,改变外层循环的判断参数使之判断为false,

这样即可用break跳出内层循环,用这个判断条件跳出外层循环,从而终止程序

10 break # 跳出内层循环

11 j += 1 #j从0开始,step为1递增,去匹配j*j==(m+168)

12 i += 1 j从0开始,step为1递增,去获取完全平方数

13

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值