Python
ABCD-CDC=ABC,求A,B,C,D值(A,B,C,D为非负整数)
无非就是循环
for a in range(10):
for b in range(10):
for c in range(10):
for d in range(10):
if a*1000+b*100+c*10+d-c*100-d*10-c==a*100+b*10+c:
print (a,b,c,d)
输出
0 0 0 0
1 0 9 8
也就是
1098-989=109
循环枚举可能的 A、B、C、D 值,范围为 0~9
for a in range(10):
for b in range(10):
for c in range(10):
for d in range(10):
abcd = str(a) + str(b) + str(c) + str(d)
cdc = str(c) + str(d) + str(c)
if int(abcd) - int(cdc) == int(str(a) + str(b) + str(c)):
print("A=", a, "B=", b, "C=", c, "D=", d)
exit()
A=1,B=0,C=9,D=8。
根据题面,a 应该不能为0,考虑到两个三位数相加,不可能得到2000以上的结果,所以循环范围限定到1000至1999
考虑到 cdc+abc = abcd,则d一定为偶数,所以循环步长设置为2
for i in range(1000,2000,2):
a = i // 1000
b = i // 100 % 10
c = i // 10 % 10
d = i % 10
if i - c * 100 - d * 10 - c == i // 10:
print('{} - {} = {}'.format(i,c * 100 + d * 10 + c,i//10))