2017蘑菇街编程题详解
来源:互联网 发布:淘宝发布宝贝教程2016 编辑:程序博客网 时间:2024/04/30 19:16
一:现在有一张半径为r的圆桌,其中心位于(x,y),现在他想把圆桌的中心移到(x1,y1)。每次移动一步,都必须在圆桌边缘固定一个点然后将圆桌绕这个点旋转。问最少需要移动几步。
输入描述:
一行五个整数r,x,y,x1,y1(1≤r≤100000,-100000≤x,y,x1,y1≤100000)
输出描述:
输出一个整数,表示答案
输入例子:
2 0 0 0 4
输出例子:
二:给定一个递增序列,a1 <a2 <...<an 。定义这个序列的最大间隔为d=max{ai+1 - ai }(1≤i<n),现在要从a2 ,a3 ..an-1 中删除一个元素。问剩余序列的最大间隔最小是多少?
输入描述:
第一行,一个正整数n(1<=n<=100),序列长度;接下来n个小于1000的正整数,表示一个递增序列。
输出描述:
输出答案。
输入例子:
5
1 2 3 7 8
输出例子:
4
输入描述:
第一行两个整数p,n(2≤p,n≤300)。p为篮筐数,n为篮球数。接着n行为篮球上的数字xi(0≤xi≤1e9)
输出描述:
输出游戏的结果
输入例子:
10 5
0
21
53
41
53
输出例子:
4
输入描述:
一行五个整数r,x,y,x1,y1(1≤r≤100000,-100000≤x,y,x1,y1≤100000)
输出描述:
输出一个整数,表示答案
输入例子:
2 0 0 0 4
输出例子:
1
package com.itheima.MoGuJie;import java.util.Scanner;/** * 现在有一张半径为r的圆桌,其中心位于(x,y),现在他想把圆桌的中心移到(x1,y1)。每次移动一步,都必须在圆桌边缘固定一个点然后将圆桌绕这个点旋转。问最少需要移动几步。输入描述:一行五个整数r,x,y,x1,y1(1≤r≤100000,-100000≤x,y,x1,y1≤100000)输出描述:输出一个整数,表示答案输入例子:2 0 0 0 4输出例子:1 * @author Dell * */public class Test1 {public static void main(String[] args) { Scanner sc=new Scanner(System.in); while(sc.hasNext()){ int r=sc.nextInt(); int x=sc.nextInt(); int y=sc.nextInt(); int x1=sc.nextInt(); int y1=sc.nextInt(); double distance=Math.sqrt(Math.pow((x1-x), 2)+Math.pow((y1-y), 2)); if(distance%(2*r)==0) { System.out.println((int)distance/(2*r)); } else { System.out.println((int)distance/(2*r)+1); } }}}
二:给定一个递增序列,a1 <a2 <...<an 。定义这个序列的最大间隔为d=max{ai+1 - ai }(1≤i<n),现在要从a2 ,a3 ..an-1 中删除一个元素。问剩余序列的最大间隔最小是多少?
输入描述:
第一行,一个正整数n(1<=n<=100),序列长度;接下来n个小于1000的正整数,表示一个递增序列。
输出描述:
输出答案。
输入例子:
5
1 2 3 7 8
输出例子:
4
package com.itheima.MoGuJie;import java.util.ArrayList;import java.util.List;import java.util.Scanner;/** * 时间限制:1秒空间限制:32768K给定一个递增序列,a1 <a2 <...<an 。定义这个序列的最大间隔为d=max{ai+1 - ai }(1≤i<n),现在要从a2 ,a3 ..an-1 中删除一个元素。问剩余序列的最大间隔最小是多少?输入描述:第一行,一个正整数n(1<=n<=100),序列长度;接下来n个小于1000的正整数,表示一个递增序列。输出描述:输出答案。输入例子:51 2 3 7 8输出例子:4 * * @author Dell * */public class Test2 { public static int solution(List<Integer> list) { int max=0; for(int i=0;i<list.size()-1;i++) { if(list.get(i+1)-list.get(i)>max) { max=list.get(i+1)-list.get(i); } } return max; }public static void main(String[] args) {Scanner sc=new Scanner(System.in);while(sc.hasNext()){int n=sc.nextInt();int[] a=new int[n];for(int i=0;i<n;i++){a[i]=sc.nextInt();}List<Integer> list=new ArrayList<>();for(int i=0;i<a.length;i++){list.add(a[i]);}int min=Integer.MAX_VALUE;for(int i=1;i<list.size()-1;i++){int beifen=list.get(i);list.remove(i);int temp=solution(list); if(temp<min) { min=temp; } list.add(i, beifen);} System.out.println(min);}}}三:有一个投篮游戏。球场有p个篮筐,编号为0,1...,p-1。每个篮筐下有个袋子,每个袋子最多装一个篮球。有n个篮球,每个球编号xi 。规则是将数字为xi 的篮球投到xi 除p的余数为编号的袋里。若袋里已有篮球则球弹出游戏结束输出i,否则重复至所有球都投完。输出-1。问游戏最终的输出是什么?
输入描述:
第一行两个整数p,n(2≤p,n≤300)。p为篮筐数,n为篮球数。接着n行为篮球上的数字xi(0≤xi≤1e9)
输出描述:
输出游戏的结果
输入例子:
10 5
0
21
53
41
53
输出例子:
4
package com.itheima.MoGuJie;import java.util.Scanner;/** * 有一个投篮游戏。球场有p个篮筐,编号为0,1...,p-1。每个篮筐下有个袋子,每个袋子最多装一个篮球。有n个篮球,每个球编号xi 。规则是将数字为xi 的篮球投到xi 除p的余数为编号的袋里。若袋里已有篮球则球弹出游戏结束输出i,否则重复至所有球都投完。输出-1。问游戏最终的输出是什么?输入描述:第一行两个整数p,n(2≤p,n≤300)。p为篮筐数,n为篮球数。接着n行为篮球上的数字xi(0≤xi≤1e9)输出描述:输出游戏的结果输入例子:10 5021534153输出例子:4 * @author Dell * */public class Test4 {public static void main(String[] args) {Scanner sc=new Scanner(System.in);while(sc.hasNext()){int p=sc.nextInt();int n=sc.nextInt();int[] a=new int[n];for(int i=0;i<n;i++){a[i]=sc.nextInt();} boolean[] flag=new boolean[p]; int result=-1; for(int i=0;i<a.length;i++) { int r=a[i]%p; if(flag[r]==false) { flag[r]=true; continue; } else { result=i+1; break; } }System.out.println(result);}}}四:给定一个字符串,问是否能通过添加一个字母将其变为回文串。
输入描述:
一行一个由小写字母构成的字符串,字符串长度小于等于10。
输出描述:
输出答案(YES\NO).
输入例子:
coco
输出例子:
YES
package com.itheima.MoGuJie;import java.util.ArrayList;import java.util.List;import java.util.Scanner;/** * * * @author Dell * */public class Test5 { public static boolean isHuiWen(List<Character> s) { boolean result=true; for(int i=0;i<s.size()/2;i++) { if(s.get(i)!=s.get(s.size()-1-i)) { result=false; break; } } return result; }public static void main(String[] args) {Scanner sc=new Scanner(System.in);while(sc.hasNext()){ String s=sc.nextLine(); List<Character> list=new ArrayList<>(); boolean result=false; for(int i=0;i<s.length();i++) list.add(s.charAt(i)); for(int i=0;i<=s.length()-1;i++) { for(int j=0;j<=25;j++) { list.add(i, (char) ('a'+j)); result=isHuiWen(list); if(result==true) { System.out.println("YES"); break; } else { list.remove(i); } } if(result==true) break; }if(result==false){for(int j=0;j<=25;j++){list.add((char)('a'+j)); result=isHuiWen(list); if(result==true) { System.out.println("YES");break; } else list.remove(list.size()-1);}}if(result==false)System.out.println("NO"); }}}
阅读全文
0 0
- 2017蘑菇街编程题详解
- 2016蘑菇街编程题5题
- 《蘑菇街编程题》回文串
- 蘑菇街2016研发工程师在线编程题
- 蘑菇街2016暑期实习笔试编程题
- 2016.3.31 蘑菇街笔试编程题2
- 投篮游戏---蘑菇街2016研发工程师在线编程题
- 回文串---蘑菇街2016研发工程师在线编程题
- 聊天------蘑菇街2016研发工程师在线编程题
- 蘑菇街2016研发工程师编程题--回文串
- 蘑菇街-应用平台开发工程师笔试编程题
- 蘑菇街2016研发工程师在线编程题
- 蘑菇街春招Android岗编程题(一)
- 蘑菇街实习生笔试题
- 蘑菇街笔试题5
- 蘑菇街笔试题1
- 蘑菇街笔试题总结
- [编程题] 最大间隔 java 蘑菇街2016研发工程师在线编程题
- 软件行业各职位英文缩写
- 凸优化-4对偶性
- 大事件(Kotlin)
- 第13章:进程管理
- 多线程(定时器的概述和使用)
- 2017蘑菇街编程题详解
- MySQL 学习<四> MySQL函数简介(数学函数、字符串函数、日期和时间函数)
- Android学习日志——第11天
- MySQL数据库的建立
- 面试总结
- noi2015解题报告
- POJ 1247 Magnificent Meatballs 笔记
- 凸优化-无约束优化算法
- java 装饰者模式 很详细!