Python 练习实例81
题目:809*??=800*??+9*?? 其中??代表的两位数, 809*??为四位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。
程序分析:无。
程序源代码:
实例(Python 2.0+)
#!/usr/bin/python
# -*- coding: UTF-8 -*-
a = 809
for i in range(10,100):
b = i * a
if b >= 1000 and b <= 10000 and 8 * i < 100 and 9 * i >= 100:
print b,' = 800 * ', i, ' + 9 * ', i
以上实例输出结果为:
9708 = 800 * 12 + 9 * 12
Python 100例



bihar
sbh***163.com
参考方法:
l1=[m for m in range(10,100/8+1)] l2=[m for m in range(12,1000/9+1)] for i in l1: if i in l2: k=i print 809*kbihar
sbh***163.com
凉城的夜
415***617@qq.com
参考:
#!/usr/bin/python # -*- coding: UTF-8 -*- def func(): m = 809 # 9 *??的结果为3位数 for i in range(1000): if i*9<1000: n=i #n为最大的范围 for i in range(1,n): if i*8<100: #8*??的结果为两位数 if i*809<10000: #809*??为四位数 if len(str(i*9)) > 2: #9*??结果为3位数 if m*i==800*i+9*i: print i print "和为:",m*i func()凉城的夜
415***617@qq.com
亮亮不知轻重
261***043@qq.com
参考:
亮亮不知轻重
261***043@qq.com
NathanLee
nat***lee1688@163.com
希望所有提交了参考代码的童鞋能把思路一并说明一下,这样方便其他的童鞋能更加容易阅读并了解你的思路,谢谢!
我的分析如下: 假设这个两位数为x, 那它肯定是在range(10,100)中,可用for循环来遍历,综合题目中给定的其他限定条件用if 语句和 and堆叠在一起便可求得这个数,代码如下:
Python3.x 与 Python2.x 兼容:
#!/usr/bin/python # -*- coding: UTF-8 -*- for i in range(10,100): if (809 * i >= 1000) and (8 * i <= 100) and (9 * i >= 100) and (809 * i == 800 * i + 9 * i): print("这个两位数是: {0}, 809乘以这个两位数{0}的结果是: {1}".format(i, 809 * i))实际输出结果为:
这个两位数是: 12, 809乘以两位数12的结果是: 9708
NathanLee
nat***lee1688@163.com