# 美团点评CodeM编程大赛-题五
2017-06-16 18:13
357 查看
美团点评CodeM编程大赛-题五
题目描述给定两个整数 l 和 r ,对于所有满足1 ≤ l ≤ x ≤ r ≤ 10^9 的 x ,把 x 的所有约数全部写下来。对于每个写下来的数,只保留最高位的那个数码。求1~9每个数码出现的次数。
输入描述:
一行,两个整数 l 和 r (1 ≤ l ≤ r ≤ 10^9)。
输出描述:
输出9行。
第 i 行,输出数码 i 出现的次数。
输入例子:
1 4
输出例子:
4
2
1
1
0
0
0
0
0
语言
JAVA JDK1.7
代码
import java.util.Scanner; /** * @ClassName: * @Description: * @Author: Arthur * @Date: 2017/6/16 14:30 * @version: V1.0.0.0 */ public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int min=sc.nextInt(); int max=sc.nextInt(); int[] timesArray=new int[9]; for (int i = min; i <=max ; i++) { for (int j = 1,k=i/2; j <=k; j++) { if(i%j==0){ int index=getFirstNum(j); timesArray[index]++; } } int myIndex=getFirstNum(i); timesArray[myIndex]++; } for (int i = 0; i < timesArray.length; i++) { System.out.println(timesArray[i]); } } //取首位 public static int getFirstNum(int num){ String firstNum= String.valueOf(num).substring(0,1); return Integer.parseInt(firstNum)-1; } }
注:这个题目理解容易,编写也容易,就是这个时间降不下来,真正要靠内功去编写的代码,现在只完成实现,测试还是无法通过,需要降低时间复杂度,期待官方解答。
相关文章推荐
- 美团点评CodeM编程大赛-题二
- 技术奥林匹克 美团点评宣布启动CodeM编程大赛_cnBeta 最新消息_cnBeta.COM
- # 美团点评CodeM编程大赛-题四
- 美团点评CodeM编程大赛-题一
- 美团点评2017年CodeM大赛-复赛 A 城市网络(倍增)
- 美团点评编程大赛题目疑问
- CodeM美团点评编程大赛 音乐研究
- CodeM美团点评编程大赛资格赛C题
- CodeM美团点评编程大赛-合并回文子串-(动态规划)
- CodeM美团点评编程大赛 初赛B轮 A 黑白树 贪心 E 子串 暴力
- CodeM美团点评编程大赛初赛A轮
- CodeM美团点评编程大赛初赛B轮 E.子串【暴力模拟+KMP】水题
- CodeM美团点评编程大赛初赛B轮
- (CodeM美团点评编程大赛初赛B轮)子串(kmp+暴力)
- 【题解】CodeM美团点评编程大赛复赛 做题感悟&题解
- 美团点评编程笔试题
- 2017美团点评秋招笔试编程
- CodeM美团点评编程大赛初赛A轮 C.倒水【二分+分类讨论】
- CodeM美团点评编程大赛A轮 C.倒水
- CodeM美团点评编程大赛初赛B轮 B.送外卖2【三进制状压Dp】