2018/12/07 L1-033 出生年 Java
解题的方法的思想非常的巧妙, 使用set的特性: 即set容器内的元素不能重复, 用set容器的size()方法来判断输入的年份的4位上的值有几个是不同的. 巧妙的解决了问题.
import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.HashSet; import java.util.Set; public class Main { public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String[] input = br.readLine().split(" "); int y = Integer.parseInt(input[0]); int n = Integer.parseInt(input[1]); for(int i = y;; i++) { Set<Integer> set = new HashSet<Integer>(); int num = i; for(int j=0; j<4; j++) { set.add(num % 10); // set内的元素不重复. num /= 10; // 算出每一位的数字的大小. } // 当set的大小等于n的时候 if(set.size() == n) { System.out.printf("%d %04d", i-y, i); break; } } } }