一、题目
用1,2,3,...,9组成3个三位数abc,def和ghi,每个数字恰好使用一次,要求abc:def:ghi=1:2:3。按照“abc def ghi”的格式输出所有解,每行一个解。
二、算法思想
问题关键在于要找出1-9这9个数字所有的排列情况,用回溯算法很容易求解。
(1)创建数组res[9],用于保存每位数字在排列中的位置;
(2)所有数字都从最左边的位置往右依次尝试,位置上有其他数字则跳过,位置空则将当前数字放入res数组。从数字1开始,选定好位置并放入数字后,递归处理数字2,3,4,...,9,在数字9也被放入后则得到了一种排列;
(3)判断该排列是否满足题中条件:
①创建数组ans[3]
②ans[0]=abc(res[0,1,2]),ans[1]=def(res[3,4,5]),ans[2]=ghi(res[6,7