本题的方案可以说是非常多:

直接打印

看了一圈下来,怎么没看到直接打印的大哥。我来当带头大哥,直接打印:

while True:
    try:
        input()
    except:
        break
        
res = """0 25 75
4 18 78
8 11 81
12 4 84
"""

print(res)

暴力循环

这个就也很直接,就三层for循环

while True:
    try:
        input()
    except:
        break
        
for x in range(100):
    for y in range(100):
        for z in range(100):
            if 100 == x + y + z and 300 == 15*x + 9*y + z:
                print(x, y, z)

一层循环

根据三层for循环的代码中的两个方程,只需要将其中一个未知量变为已知量,即可将这个不完整的三元一次方程组,转为完整的二元一次方程组,就可以使用一层for循环来解决。

while True:
    try:
        input()
    except:
        break
        
for x in range(20):
    yushu = (100 - 7 * x) % 4
    if yushu == 0:
        y = (100 - 7 * x) // 4
        z = 100 - x - y
        if z >= 0 and y >= 0:
            print(x,y,z)

丢番图方程

实际上,本题所得到的方程中的未知数,都必须是正整数。而丢番图方程就是让方程的求解仅仅在整数范围内进行。本题需要正整数解,是丢番图方程的子集。 扩展部分:

  1. 费马大定理
  2. 希尔伯特第十问题