任意一个5位数,比如:34256,把它的各位数字打乱,重新排列,可以得到一个最大的数:65432,一个最小的数23456。求这两个数字的差,得:41976,把这个数字再次重复上述过程(如果不足5位,则前边补0)。如此往复,数字会落入某个循环圈(称为数字黑洞)。 比如,刚才的数字会落入:[82962, 75933, 63954, 61974] 这个循环圈。 请编写程序,找到5位数所有可能的循环圈,并输出,每个循环圈占1行。其中5位数全都相同则循环圈为 [0],这个可以不考虑。 [53955,59994] [61974,82962,75933,63954] [62964,71973,83952,74943] |
Curvat 发表于 2016-5-28 22:24
这不是蓝桥杯的经典题目么
public class NumberBlackHole
{
Curvat 发表于 2016-5-28 22:24
这不是蓝桥杯的经典题目么
public class NumberBlackHole
{
liming1990422 发表于 2016-5-30 23:31
ArrayList a = new ArrayList(); //装循环圈集合
for (int i = 10000; i ...
liming1990422 发表于 2016-5-30 23:31
ArrayList a = new ArrayList(); //装循环圈集合
for (int i = 10000; i ...
土菠萝 发表于 2016-5-31 08:57
[29997, 62964, 71973, 74943, 83952]
[39996, 62964, 71973, 74943, 83952]
liming1990422 发表于 2016-5-31 09:52
难道这两个不是循环圈吗 你自己算算
土菠萝 发表于 2016-5-29 00:11
蓝桥杯是什么东西,反正我自己写出来一份,只是想参考一下其他的答案而已啦! ...
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |