SCJP经典试题

任务1:继续做昨天的Java选择题,如果觉得有疑问的请记录下来,由老师讲解有疑问的题目。

 

任务2:当你在做任务1感觉枯燥时,可以考虑做做以下三个问题。

 

 

问题1:

数字4和7是幸运数字,其他都是非幸运数字。 第1级幸运号码是一个只包含幸运数字的10进制回文正整数【从前读和从后读都相同的数字是回文数字】。给你一个长整型数a和b, 统计该范围内(含a和b)的第1级幸运号码的个数。

 

定义类和方法如下:

public class TheLuckyNumbersLevelOne{

    public long find(long a, long b){

   

    }

}

    

约束条件:

1<=a<=10^18

1<=b<=10^18

0)

 

    

1

100

Returns: 4

第1级幸运号码为: 4, 7, 44 和 77.

 

1)   

45

54

Returns: 0

 

 

2)

 

    

477444774

477444774

Returns: 1

第1级幸运号码为: 477444774

 

3)

    

456789123

789123456

Returns: 24

 

 

问题2:

数字4和7是幸运数字,所其他数字是非幸运数字。第2级幸运号码是一个只包含4或7的10进制的回文正整数。现有一个整数集合,请找出其和为第2级幸运号码的所有整数子集。

给你一个int[] 数组,表示整数集合,返回一个int[]数组,包含其和为第2级幸运号码的整数子集。返回的整数数组必须以升序排序。如果有多个幸运号码,返回和最大的那个整数子集;如果同一个幸运号码有多个整数子集,返回其字典排序最小的那个整数子集。【字典排序是指给定的两个数组 int[] a1 和 int[] a2,如果a1[0] < a2[0],则a1应排在a2之前。称a1在字典排序中比a2小。】,如果无法组成幸运号码,则返回空。

 

定义类如下:实现find方法。

public class TheLuckyNumbersLevelTwo{

    public int[] find(int[] numbers){}

}

    

约束:

数组 numbers中元数个数大于等于1,小于等于34。

1 <= numbers[i] <= 1,000,000,000,其中 1<=i<=34.

 

:

0)

    

{1, 2, 3, 4}

Returns: {1, 2, 4 }

 

这里可以得到的幸运数字有4和7.

7有两个子集{3, 4} 和 {1, 2, 4}. 选择字典排序小的{1,2,4}

 

1)

    

{12, 43, 29}

Returns: { }

没有幸运号码

 

2)

 

    

{4, 7}

Returns: {7 }

 

3)

    

{41, 2, 28, 44, 7, 42, 21}

Returns: {7, 28, 42 }

 

4)

 

    

{15, 10, 28, 3, 13, 27, 7}

Returns: {7, 15, 27, 28 }

 

5)

 

    

{18, 45, 6}

Returns: { }

 

6)

    

{34, 20, 26, 28, 33, 23, 44, 40, 25, 10, 36, 14, 7, 29, 21, 27, 17, 13, 19, 24, 32, 41, 31}

Returns: {7, 10, 13, 14, 17, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 31, 32, 34, 44 }

 

 

问题3:

数字4和7是幸运数字,所其他数字是非幸运数字。第3级幸运号码是一个至少可以被一个幸运数字整除的10进制正整数。John 和 Brus 已经写出了a到b之间的所有第3幸运号码,含a和b。他们想统计这些幸运数号码每位数字【0--9】的出现次数。返回一个包含10个元素的long[] 数组,第i-th个元素表示数字i出现的总次数。0<=i<=9。

    

定义类如下:实现find方法。

public class TheLuckyNumbersLevelThree{

    public int[] find(int[] numbers){}

}

 

约束条件:

1<=a<=10^16

1<=b<=10^16

 

例:

0)

   

1

10

Returns: {0, 0, 0, 0, 1, 0, 0, 1, 1, 0 }

第3级幸运号码为- 4, 7, 8.

1)

    

78

79

Returns: {0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }

没有

 

2)

    

1

47

Returns: {2, 4, 7, 3, 7, 1, 2, 1, 2, 0 }

 

3)

    

21

91

Returns: {4, 2, 7, 4, 9, 3, 7, 5, 7, 2 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值