请问不用数组怎么做啊!我甚至没有思路

从下面的 6 张卡片中选出 4 张,

组成两个两位数,使它们的差是

35。你能想出几种选法?

     1  2  3  6  7  8

编程求解上述问题。要求:

不得使用数组、指针、结构体等章节的知识。

验证你的结果。


package com.study.java8;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;

/**
 * hgg-2021年10月27日16:14:41
 * 从下面的 6 张卡片中选出 4 张,
 组成两个两位数,使它们的差是
 35。你能想出几种选法?
 1  2  3  6  7  8
 */
public class DateTools {

    public static void main(String[] args) {

        int init = 35;
        //十位、个位最大数为8,根据差为35;

        //十位数:最大为5
        int max_shi = 8 - 3;
        //个位数:最大为3
        int max_ge = 8 - 5;

        //35的十位
        int shi = 3;
        //35饿个位
        int ge = 5;

        for (int shiTmp = 1;shiTmp<=max_shi;shiTmp++){

            for (int geTmp = 1;geTmp<=max_ge;geTmp++){
                if (shiTmp != geTmp){
                    int now = shiTmp * 10 + geTmp;
                    int sum = now + init;

                    //相加和:个位与十位
                    int sum_shi = sum / 10;
                    int sum_ge = sum % 10;

                    //是否重复取数字
                    Set<Integer> set = new HashSet<>();
                    set.add(shiTmp);
                    set.add(geTmp);
                    set.add(sum_shi);
                    set.add(sum_ge);

                    if (set.size() == 4){
                        //满足条件的数字
                        System.out.println(now + "--" +sum);
                    }

                }

            }


        }


    }
}

用的java写的,原理类似

img

那么这六个数存到哪里去

你可以随机生成一个数,判断它是否在这六个数中,然后再随机生成一个,两个数做差,等于3。然后再做一次,两个数做差等于5。最后输出这四个数。外面用while无限循环。