方法:双重 for 循环解决

这应该是一个比较好想的思路

  1. 定义一个计数器,专门记录整数 1 的个数
  2. 第一层 for 循环 1-n
  3. 然后将循环的每个数先转换为 String,然后转换成 char[] 数组
  4. 第二次 for 循环遍历 char[] 数组,统计 '1' 出现的个数
         if (n < 0) return 0;
         int count = 0;
         for (int i = 1;i<=n; i++) {
             char[] str = String.valueOf(i).toCharArray();
             for (int j=0;j<str.length;j++) {
                 if (str[j] == '1') {
                     count++;
                 }
             }
         }
         return count;