#美团4-23笔试
在观星的时候,一种常用的方式是划出类似于正方形的区域内,确定其中所有星星的坐标。 现在我们在星空(一个无限大的二维平面)上建立坐标系。由于星星很小,我们忽略它的面积,认为每一个星星是一个点,且所有星星的坐标都是整数。 幸运星的定义是这一颗星星在这个平面内,正上,正下,正左,正右都有其他的星星(不一定相邻)。 现在,我们已经将这个正方形的区域取出,并且将他们所在的坐标给你。现在希望你能计算,这个平面内有多少颗幸运星? 输入 输入第一行包含一个数n,代表正方形区域内星星的总数。 接下来n行,每行两个整数xi,yi,代表这颗星星的坐标。 (n<=2000,-1000<=xi,yi<=1000,没有两颗星星的坐标是相同的。) 输出 输出包含一个数,即有多少颗星星是幸运星。 样例输入 8 0 0 0 1 0 2 0 3 1 1 1 2 -1 1 -1 2 样例输出 2 提示 样例解释: 有两颗幸运星,分别是(0,1)(0,2) 货币数值的规范化是金融公司的一个问题,现在你需要写一个程序来解决这一问题: 1.货币数值的整数部分要求每3位加一个英文逗号','(不含引号)。例如12345678应该规范化为12,345,678 2.货币数值最多只有两位小数,如果有多余的小数位数应当舍去。注意,不是四舍五入。 3.负数代表欠款,在规范化后应当在数值两端加上括号 '(' 和 ')' ,然后省略掉负号。 4.应当在数值前面,前括号后面(如果有括号的话)加上金钱符号'$'(不含引号) 现在给你一个数字,请你规范化这一数字 输入 输入包含多种数据,每组数据一行一个数字,可能为小数,整数,负整数,负小数或者零。 数据保证数字没有前导0,保证不会出现欠0元的情况 输出 输出规范化后的内容 样例输入 203323 0.0 0.000000 0.009212121 343444323.32432 -12344.1 -12345678.9 样例输出 $203,323.00 $0.00 $0.00 $0.00 $343,444,323.32 ($12,344.10) ($12,345,678.90) 提示 范围 每个字符串长度不会超过100 现在有n名选手进行轮流报数,选手按顺序编号为1~n,另外我们会给出一个序列A,游戏会进行n轮,每轮会出局一名选手,第i轮淘汰的选手最后的排名是n-i+1,即第一轮出局的是倒数第一。出局的选手不会参与下一轮报数。 每轮游戏都是从第一个选手开始报数,即如果1号选手仍在,则从1号选手开始,否则从2号选手开始,以此类推,但是注意,每轮报数是从0开始的,第i轮时,第一个报到A[i]的选手会出局,且当前轮游戏结束。A[i]有可能大于当前的剩余人数,则最后一个人报完以后,会由第一个人接着报,直到报出A[i]。 输入 输入第一行包含一个正整数n,表示有n名选手。(1<=n<=100000) 输入第二行包含n个正整数,表示序列A。(0<=A[i]<=10^9) 输出 输出包含n行,每行一个正整数,第i行的正整数表示i号选手的排名是多少。即输出是一个1~n的排列。 样例输入 4 1 2 1 2 样例输出 1 4 2 3 提示 样例解释, 第一轮中,1-4号选手报数分别是0,1,+,+(+代表未报数),因为A[1]=1,所以2号选手出局,排名为4。 第二轮中,1-4号选手报数为0,-,1,2(-代表一出局),因为A[2]=2,所以4号选手出局,排名为3。 第三轮中,1-4号选手报数为0,-,1,-,因为A[3]=1,所以3号选手出局,排名为2。 第四轮只有1号选手了,所以他会报所有的数字,最后出局。 第一行有两个整数n,k,代表物品的数量和人的数量。 接下来n行,每行两个整数u,v描述一个物品。u代表物品的价格,v代表商品的种类。如果v为1,代表其为A类商品。如果v为2,代表其为B类商品。 1<=n,k<=1000,1<=u<=1000000,v∈{1,2} 输出 输出一行一个小数,表示所需要的最少的钱数。保留两位小数输出。 样例输入 5 2 10 1 2 2 5 2 8 1 9 1 样例输出 28.00 提示 样例解释: 第一个人只买第一个物品,第二个人买剩下的物品。 第一个人由于买了A类物品,最便宜的物品半价,付款5元 第二个人由于也买了A类物品,最便宜的物品半价,付款23元(物品二半价) (买法不唯一) 输入第一行包括一个整数n,代表序列a的长度 接下来一行n个数,空格隔开,代表序列a 1<=n<=100000,1<=ai<=106 输出 输出n个数。 如果对于i个数,存在j∈[1,n],使得ai,aj不相似,输出1,否则输出-1 样例输入 4 3 5 6 1 样例输出 -1 -1 1 1 提示 样例解释: 唯一一对不相似的数是6和1,故6和1的答案为1,其余为-1。
自己太菜了,第一题明明很简单没有想清楚,花了40分钟没做出来,后面第二题考边界。。第三题类似剑指offer 最后一题暴力只有45的得分
public class Main2 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(sc.hasNext()){ String in = sc.nextLine(); int left = 0; if(in.startsWith("-")){ left = 1; } int start = in.indexOf('.'); int len = start == -1 ? in.length() - 1 : start - 1; String res = "."; int count = 1; for(int i = len; i >= left; i--){ if(count == 3 && i != left){ res = "," + in.charAt(i) + res; count = 1; }else{ res = in.charAt(i) + res; count++; } } if(start == -1){ res = res + "00"; }else{ if(start == in.length() - 2){ res = res + in.charAt(start + 1) + "0"; }else{ res = res + in.charAt(start + 1) + in.charAt(start + 2); } } res = '$' + res; if(left == 1){ res = '(' + res + ')'; } System.out.println(res); } } } public class Main3{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int[] seq = new int[N]; int[] res = new int[N]; for(int i = 0; i < N; i++){ seq[i] = sc.nextInt(); } ArrayList<Integer> child = new ArrayList<>(); for(int i = 0; i < N; i++){ child.add(i); } for(int i = 0; i < N; i++){ int len = seq[i] % child.size(); res[child.get(len)] = N - i; child.remove(len); } for(int i = 0; i < N; i++){ System.out.println(res[i]); } } } public class Main5 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int[] seq = new int[N]; for(int i = 0; i < N; i++){ seq[i] = sc.nextInt(); } int[] res = new int[N]; for(int i = 0; i < N; i++){ int j = 0; while(j < N){ if(j == i){ j++; continue; } if((seq[i] & seq[j]) == 0){ res[i] = 1; break; } j++; } if(j == N){ res[i] = -1; } } for(int i = 0; i < res.length; i++){ System.out.println(res[i]); } } }