七月


私信TA

用户名:yuzefeng

访问量:627

签 名:

等  级
排  名 1395
经  验 2056
参赛次数 0
文章发表 38
年  龄 0
在职情况 学生
学  校 成都理工大学
专  业

  自我简介:

解题思路:一般来说,把数字按位数分开,我第一反应都是变成字符串(个人习惯)。因为要排序,而且为了方便插入,所以选了集合

注意事项:这个集合的排序我开始调试了很久还是1 2 145 40585,后面去询问大佬才知道,我开始集合创建的int 类型,排序比较的时候用的是值比较,所以并不是排序没起作用,而是我理解出了问题,把集合的类型改成String之后就可以了

参考代码:

package cn.yzf.clanguageTest;
import java.util.*;

public class Main {
   public static void main(String[] args) {
       ArrayList<String> list = new ArrayList<String>();
       for(int i = 1 ;i <= 100000;i ++){
           long sum =0;
           int len = String.valueOf(i).length();
           int a [] = new int[len];
           String si = String.valueOf(i);
           for(int j = 0;j < len;j++)
               a[j] = si.charAt(j)-'0';
           for(int j = 0;j < len;j ++){
               long count = 1;
               for(int k = 1;k <= a[j];k++)
                   count *= k;
               sum += count;
           }
           if(sum == i)
               list.add(i+"");

       }
       Collections.sort(list);
       for(String i : list)
           System.out.print(i+" ");



   }
}


//        =============Dragon be here!==========/
//            ┏┓   ┏┓
//           ┏┛┻━━━┛┻┓
//           ┃       ┃
//           ┃   ━   ┃
//           ┃ ┳┛ ┗┳ ┃
//           ┃       ┃
//           ┃   ┻   ┃
//           ┃       ┃
//           ┗━┓   ┏━┛
//             ┃   ┃神兽保佑
//             ┃   ┃代码无BUG!
//             ┃   ┗━━━┓
//             ┃       ┣┓
//             ┃       ┏┛
//             ┗┓┓┏━┳┓┏┛
//              ┃┫┫ ┃┫┫
//              ┗┻┛ ┗┻┛
//         ━━━━━━神兽出没━━━━━━

 

0.0分

0 人评分

  评论区