入门算法递归+循环+异常处理练习2020010301

Posted jimmyseraph

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了入门算法递归+循环+异常处理练习2020010301相关的知识,希望对你有一定的参考价值。

package org.jimmy.autosearch.test;

import java.util.ArrayList;
import java.util.HashMap;

public class Recursive2020010301 {

    public static void main(String[] args) {
        try {
            ArrayList<HashMap<String, Integer>> list = new ArrayList<HashMap<String, Integer>>();
            HashMap<String, Integer> map = new HashMap<String, Integer>();
            int maxNumber = 3;
            int numberCount = maxNumber - 1;
            int initialIndex = 1;
            int initialIndex2 = 0;
            map.put("maxNumber", maxNumber);
            map.put("numberCount", numberCount);
            map.put("initialIndex", initialIndex);
            map.put("initialIndex2", initialIndex2);
            list.add(map);
            map = new HashMap<String, Integer>();
            maxNumber = 4;
            numberCount = maxNumber - 1;
            initialIndex = 1;
            initialIndex2 = 0;
            map.put("maxNumber", maxNumber);
            map.put("numberCount", numberCount);
            map.put("initialIndex", initialIndex);
            map.put("initialIndex2", initialIndex2);
            list.add(map);
            int currentIndex = 0;
            test5(list, currentIndex);
        } catch (Exception e) {
            
        }
    }
    
    public static void test5(ArrayList<HashMap<String, Integer>> list, int currentIndex) throws Exception {
        HashMap<String, Integer> map = list.get(currentIndex);
        Integer maxNumber = (Integer) map.get("maxNumber");
        Integer numberCount = (Integer) map.get("numberCount");
        Integer initialIndex = (Integer) map.get("initialIndex");
        Integer initialIndex2 = (Integer) map.get("initialIndex2");
        try {
            test4(maxNumber, numberCount, initialIndex, initialIndex2);
        } catch (Exception e) {
            System.out.println("---------------------------------");
            currentIndex++;
            test5(list, currentIndex);
        }
    }
    
    public static void test4(int max, int count, int index, int index2) throws Exception {
        for(int i = index2; i < max; i++){
            int tempIndex = index;
            int tempIndex2 = i;
            int j = i + tempIndex;
            if(index2 >= max - 1 && j >= max - 1){
                throw new RuntimeException();
            }
            System.out.println("i:" + i + ",j:" + j);
            if(j >= max - 1){
                tempIndex = 0;
                tempIndex2++;
            }
            tempIndex++;
            if(i <= max - 1 && j <= max - 1){
                test4(max, count, tempIndex, tempIndex2);
            }
        }
    }

}

效果图:

技术图片

 

以上是关于入门算法递归+循环+异常处理练习2020010301的主要内容,如果未能解决你的问题,请参考以下文章

2021算法竞赛入门班第二节课递归分治二分练习题

《算法图解》第三章笔记与课后练习

《C#零基础入门之百识百例》(二十)异常处理 -- 除数为0

数据--第21课-递归课后练习

第12章 异常

算法:递归