求一道java程序设计题(循环圈)任意一个5位数,比如:34256,把它的各位数字打乱,重新排列,可以得到一个最大的数:65432,一个最小的数23456.求这两个数字的差,得:41976,把这个数字再次重复上述过程(如果不足5位,则前边补0).如此往复,数字会落入某个循环圈(称为数字黑洞).比如,刚才的数字会落入:[82962,75933,63954,61974] 这个循环圈.请编写程序,找到5位数所有可能的循环圈,并输出,每个循环圈占1行.其中5位数全都相同则循环圈为 [0],这个可以不考虑.循环圈的
2020-01-04
求一道java程序设计题(循环圈)
任意一个5位数,比如:34256,把它的各位数字打乱,重新排列,可以得到一个最大的数:65432,一个最小的数23456.求这两个数字的差,得:41976,把这个数字再次重复上述过程(如果不足5位,则前边补0).如此往复,数字会落入某个循环圈(称为数字黑洞).
比如,刚才的数字会落入:[82962,75933,63954,61974] 这个循环圈.
请编写程序,找到5位数所有可能的循环圈,并输出,每个循环圈占1行.其中5位数全都相同则循环圈为 [0],这个可以不考虑.循环圈的输出格式仿照:
[82962,75933,63954,61974]
如果没有代码,
优质解答
你的分数太少了,除非在50分以上.
方法声明如下:
public class Test
{
public static void main(String args[])
//检查当前元素在数组中是否存在,若存在,返回位置,否则返回-1
public static int getExistIndex(int[] source, int len, int key)
//根据5位数的5位数字组合成一个最大的数
public static int getMaxValue(int num)
//根据5位数的5位数字组合成一个最小的数
public static int getMinValue(int num)
//将5位数的5位数字存储到数组中
public static void storage(int num, int[] arr)
//根据数组的元素生成新的5位数
public static int generate(int[] arr)
//对数组中的元素进行升序/降序排序
public static void sort(int[] arr, boolean asc)
}
具体功能已经完全实现,经过了测试.
你的分数太少了,除非在50分以上.
方法声明如下:
public class Test
{
public static void main(String args[])
//检查当前元素在数组中是否存在,若存在,返回位置,否则返回-1
public static int getExistIndex(int[] source, int len, int key)
//根据5位数的5位数字组合成一个最大的数
public static int getMaxValue(int num)
//根据5位数的5位数字组合成一个最小的数
public static int getMinValue(int num)
//将5位数的5位数字存储到数组中
public static void storage(int num, int[] arr)
//根据数组的元素生成新的5位数
public static int generate(int[] arr)
//对数组中的元素进行升序/降序排序
public static void sort(int[] arr, boolean asc)
}
具体功能已经完全实现,经过了测试.