之前做蓝桥杯的题目的时候,遇到一次这种题目,在1到9中选9个数字且不能重复,一直百度也没有找到合适的方法。今天在这里为大家编写算法(其实和冒泡排序算法差不多,大家如果还有好的算法可以留言哦),题目是这种题目,其实后面函数就是化为怎么判断不重复的问题。
1.问题描述:
凑算式
B DEF
A + --- + ------- = 10
C GHI
这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。
比如:
6+8/3+952/714 就是一种解法,
5+3/1+972/486 是另一种解法。
2.算法思路:
这道题目刚开始看到,我是想到用for循环暴力,一想要写9个for循环,立马想放弃了。但其实不用这样,只用写5个for循环,将DEF和GHI看成一个整体,设置变量a1,a2,a3,a4,a5,然后再for循环。循环完了,再调用函数isReaped(a1,a2,a3,a4,a5),判断是否重复,不重复输出即可。
3.代码如下:
public class Pchou{
public static void main(String[] args) {
int a1,a2,a3,a4