judgecx 发表于 2019-12-1 19:45

python-解数学灯迷求助

本帖最后由 judgecx 于 2019-12-1 19:46 编辑

解数学灯迷。有以下算式:A,B,C,D均为一位非负整数,要求找出A,B,C,D的值,请编程序。

judgecx 发表于 2019-12-1 19:47

希望各位大佬 有详解谢谢

我心她有丶 发表于 2019-12-1 19:58

for i in range(1000,10000):
    A = i // 1000
    B = i // 100 % 10
    C = i // 10 % 10
    D = i % 10
    CDC = C * 100 + D * 10 + C
    ABC = A * 100 + B * 10 + C
    if(i-CDC == ABC):
      print(A,B,C,D)

judgecx 发表于 2019-12-1 20:07

我心她有丶 发表于 2019-12-1 19:58
for i in range(1000,10000):
    A = i // 1000
    B = i // 100 % 10


大佬 能详解一下嘛

大西几王~嗷呜~ 发表于 2019-12-1 20:12

本帖最后由 大西几王~嗷呜~ 于 2019-12-1 20:15 编辑

judgecx 发表于 2019-12-1 20:07
大佬 能详解一下嘛
A是千位 B是百位,剩下的不用解释吧 ps:i//1000i除以1000后的最小整数

生有涯知无涯 发表于 2019-12-1 20:28

本帖最后由 生有涯知无涯 于 2019-12-1 20:36 编辑

化简一下可得900A+90B-92C-D=0
然后来个四层循环就行了。
# -*- coding: UTF-8 -*-
for a in range(0,10):
      for b in range(0,10):
                for c in range(0,10):
                        for d in range(0,10):
                              if(900*a+90*b-92*c-9*d==0):
                                                print(a,b,c,d)

166818008 发表于 2019-12-1 20:34

我心她有丶 发表于 2019-12-1 19:58
for i in range(1000,10000):
    A = i // 1000
    B = i // 100 % 10


为什么不是从0开始遍历呢?

大西几王~嗷呜~ 发表于 2019-12-1 21:30

166818008 发表于 2019-12-1 20:34
为什么不是从0开始遍历呢?

i是四位数。。大哥

518 发表于 2019-12-1 21:39

大西几王~嗷呜~ 发表于 2019-12-1 21:30
i是四位数。。大哥

大佬,0000貌似也可

豆虫 发表于 2019-12-1 21:45

1098-989=109
页: [1] 2 3
查看完整版本: python-解数学灯迷求助