从下面的 6 张卡片中选出 4 张,
组成两个两位数,使它们的差是
35。你能想出几种选法?
1 2 3 6 7 8
编程求解上述问题。要求:
不得使用数组、指针、结构体等章节的知识。
验证你的结果。
从下面的 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写的,原理类似