java编程解小学生一年级竞赛题

发布时间:2024年01月14日

抖音教学视频

目录

1、题目三角形加起来为10


大纲

1、题目三角形加起来为10

连接:小学一年级数学竞赛练习题3套,有点难度!? 第16题

此方法不是最优解,穷举法,比较暴力解决

主要给大家演示如何用编程去解决我们的实际问题,

/**
 * @ClassName TopicTest
 * @Author chuige
 * @create 2024/1/14 10:33
 */
public class TopicTest {

    public static void main(String[] args) {
        new TopicTest().topic16();
    }

    /*
     * @Author 吹老师
     * @Description // 解 小学生一年级 最难的竞赛题
     * @Date 10:34 2024/1/14
     * @Param []
     * @return void
     **/
    private void topic16() {
        int[] a = {1, 2, 3, 4, 5, 6};
        int[] result = new int[6];
        topic16(a, 0, result);
        System.out.println("执行完成");
    }

    private void topic16(int[] a, int count, int[] result) {
        if (count == 6) {
            printResult(result);
            return;
        }
        for (int i = 0; i < 6; i++) {
            result[count] = i + 1;
            topic16(a, count + 1, result);
        }
    }

    private void printResult(int[] result) {
        int reuslt1 = result[0] + result[1] + result[2];
        int reuslt2 = result[2] + result[3] + result[4];
        int reuslt3 = result[4] + result[5] + result[0];
        if (reuslt1 != 10 || reuslt2 != 10 || reuslt3 != 10) {
            return;
        }
        StringBuilder stringBuilderResult = new StringBuilder();
        stringBuilderResult.append("结果:");
        Set<Integer> repeatSet = new HashSet<>();
        for (int temp : result) {
            if (repeatSet.contains(temp)) {
                return;
            }
            repeatSet.add(temp);
            stringBuilderResult.append(" " + temp);
        }
        System.out.println("满足条件的结果:" + stringBuilderResult.toString());

//        满足条件的结果:结果: 1 4 5 2 3 6
//        满足条件的结果:结果: 1 6 3 2 5 4
//        满足条件的结果:结果: 3 2 5 4 1 6
//        满足条件的结果:结果: 3 6 1 4 5 2
//        满足条件的结果:结果: 5 2 3 6 1 4
//        满足条件的结果:结果: 5 4 1 6 3 2
    }

文章来源:https://blog.csdn.net/chuige2013/article/details/135581203
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。