【算法】程序猿不写代码是不对的69
来源:互联网 发布:淘宝图片护盾哪里设置 编辑:程序博客网 时间:2024/06/06 11:47
package com.kingdz.algorithm.time201706;import java.util.Arrays;import java.util.HashSet;import java.util.Set;/** * <pre> * 6174问题 * 给定一个各位数字互不相同的四位数,把所有的数从大到小排列得到a,从小到大排列得到b * 然后a-b代替原来的数,继续操作,直到出现6174或以前出现过的数后停止 * </pre> * * @author kingdz * */public class Algo12 { public static void main(String[] args) { for (int n = 1000; n < 10000; n++) { int start = n; if (!check(start)) { continue; } Set<Integer> set = new HashSet<Integer>(); set.add(start); StringBuilder strb = new StringBuilder("" + start); for (int i = 0; i < 1000; i++) { int a = getA(start); int b = getB(start); start = a - b; if (set.contains(start)) { break; } else { strb.append("->" + start); if (start == 6174) { break; } } } System.out.println(strb); } } /** * 检查保证各位数字互不相同 */ private static boolean check(int start) { Set<String> set = new HashSet<String>(); for (char c : ("" + start).toCharArray()) { set.add("" + c); } if (set.size() == 4) { return true; } return false; } private static int getB(int start) { String str = "" + start; char[] arr = str.toCharArray(); Arrays.sort(arr); str = new String(arr); return Integer.parseInt(str); } private static int getA(int start) { String str = "" + start; char[] arr = str.toCharArray(); Arrays.sort(arr); StringBuilder strb = new StringBuilder(); for (int i = arr.length - 1; i >= 0; i--) { strb.append(arr[i]); } return Integer.parseInt(strb.toString()); }}
阅读全文
0 0
- 【算法】程序猿不写代码是不对的69
- 【算法】程序猿不写代码是不对的1
- 【算法】程序猿不写代码是不对的2
- 【算法】程序猿不写代码是不对的3
- 【算法】程序猿不写代码是不对的4
- 【算法】程序猿不写代码是不对的5
- 【算法】程序猿不写代码是不对的6
- 【算法】程序猿不写代码是不对的7
- 【算法】程序猿不写代码是不对的8
- 【算法】程序猿不写代码是不对的9
- 【算法】程序猿不写代码是不对的10
- 【算法】程序猿不写代码是不对的11
- 【算法】程序猿不写代码是不对的12
- 【算法】程序猿不写代码是不对的13
- 【算法】程序猿不写代码是不对的14
- 【算法】程序猿不写代码是不对的15
- 【算法】程序猿不写代码是不对的16
- 【算法】程序猿不写代码是不对的17
- Android 使用原始xml资源
- 线性筛法求素数
- 一次性加载数据,前端分页
- 我们为什么应该坚持写博客
- 课程
- 【算法】程序猿不写代码是不对的69
- CodeM资格赛第二题
- 虚拟机栈溢出之这个例子谨慎运行
- 微信小程序 自定义浮层(弹出对话框为例)
- IDE 用Spring Boot零配置快速创建web项目(1)
- hack this site--level 4&5
- MapReduce之人脉计算
- 量亿数据说说量化交易在A股市场中的位置
- Android中的Apk的加固(加壳)原理解析和实现