【ACM】P2000、P2001、P2002、P2003、P2004、P2005代码演示
2017-04-27 22:40
435 查看
【p2000问题描述】(输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符):
/** * ASCII码排序 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 167747 Accepted Submission(s): 67616 Problem Description 输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。 Input 输入数据有多组,每组占一行,有三个字符组成,之间无空格。 Output 对于每组输入数据,输出一行,字符中间用一个空格分开。 Sample Input qwe asd zxc Sample Output e q w a d s c x z Author lcy *@author <a"283505495@qq.com">lxd</a> *@version 1.0 2017-4-27 下午7:53:32 *@fileName P2000.java */
代码演示:
package ac; import java.util.Scanner; public class P2000 { public static void main(String[] args) { Scanner sc=new Scanner(System.in); while(sc.hasNext()){ String str=sc.nextLine(); /**调用String方法toCharArray() */ char[] chs=str.toCharArray(); sort(chs); print(chs); } } /**按格式打印出*/ private static void print(char[] chs) { for(int i=0;i<chs.length;i++){ if(i!=chs.length-1){ System.out.print(chs[i]+" "); }else{ System.out.print(chs[i]); } } System.out.println(); } /**用冒泡进行排序*/ private static void sort(char[] chs) { for(int i=0;i<chs.length;i++){ for(int j=0;j<chs.length-i-1;j++){ if(chs[j]>chs[j+1]){ swap(chs,j,j+1); } } } } /**交换两个字符*/ private static void swap(char[] chs, int i, int j) { char temp; temp=chs[i]; chs[i]=chs[j]; chs[j]=temp; } }
运行结果:
【p2001问题描述】(输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离):
/** * 计算两点间的距离 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 209283 Accepted Submission(s): 73005 Problem Description 输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离。 Input 输入数据有多组,每组占一行,由4个实数组成,分别表示x1,y1,x2,y2,数据之间用空格隔开。 Output 对于每组输入数据,输出一行,结果保留两位小数。 Sample Input 0 0 0 1 0 1 1 0 Sample Output 1.00 1.41 */
代码演示:
package ac; import java.util.Scanner; public class P2001 { public static void main(String[] args) { Scanner sc=new Scanner(System.in); while(sc.hasNext()){ /**由题意知:有四个实数,因此用double接受scanner*/ double x1=sc.nextDouble(); double y1=sc.nextDouble(); double x2=sc.nextDouble(); double y2=sc.nextDouble(); /**调用java.util.Math类中的sqrt方法求根号*/ float s= (float) Math.sqrt( (y2-y1)*(y2-y1)+(x2-x1)*(x2-x1) ); /**按照format格式输出--“%.2f”*/ System.out.printf("%.2f", s); System.out.println(); } } }
运行结果:
【p2002问题描述】(根据输入的半径值,计算球的体积):
/** * 计算球体积 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 157476 Accepted Submission(s): 63138 Problem Description 根据输入的半径值,计算球的体积。 Input 输入数据有多组,每组占一行,每行包括一个实数,表示球的半径。 Output 输出对应的球的体积,对于每组输入数据,输出一行,计算结果保留三位小数。 Sample Input 1 1.5 Sample Output 4.189 14.137 Hint #define PI 3.1415927 */
代码演示:
package ac; import java.util.Scanner; public class P2002 { public static void main(String[] args) { double PI =3.1415927; Scanner sc=new Scanner(System.in); while(sc.hasNext()){ double r=sc.nextDouble(); //对于double值的计算,使用正确的格式运算--(4.0/3)求出的结果才是double类型 double v=(4.0/3)*PI*r*r*r; System.out.printf("%.3f",v); System.out.println(); } } }
运行结果:
【p2003问题描述】(求实数的绝对值):
/** * 求绝对值 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 131345 Accepted Submission(s): 64315 Problem Description 求实数的绝对值。 Input 输入数据有多组,每组占一行,每行包含一个实数。 Output 对于每组输入数据,输出它的绝对值,要求每组数据输出一行,结果保留两位小数。 Sample Input 123 -234.00 Sample Output 123.00 234.00 Author */
代码演示:
package ac; import java.util.Scanner; public class P2003 { public static void main(String[] args) { Scanner sc=new Scanner(System.in); while(sc.hasNext()){ double d=sc.nextDouble(); System.out.printf("%.2f",Math.abs(d)); System.out.println(); } } }
运行结果:
【p2004问题描述】(输入一个百分制的成绩t,将其转换成对应的等级):
/** * 成绩转换 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 143388 Accepted Submission(s): 62656 Problem Description 输入一个百分制的成绩t,将其转换成对应的等级,具体转换规则如下: 90~100为A; 80~89为B; 70~79为C; 60~69为D; 0~59为E; Input 输入数据有多组,每组占一行,由一个整数组成。 Output 对于每组输入数据,输出一行。如果输入数据不在0~100范围内,请输出一行:“Score is error!”。 Sample Input 56 67 100 123 Sample Output E D A Score is error! */
代码演示:
package ac; import java.util.Scanner; /** * 此题具体用到了if() else if( ){ } *@author <a"283505495@qq.com">lxd</a> *@version 1.0 2017-4-27 下午8:55:27 *@fileName P2004.java */ public class P2004 { public static void main(String[] args) { Scanner sc=new Scanner(System.in); while(sc.hasNext()){ int t=sc.nextInt(); String score=getScore(t); System.out.println(score); } } private static String getScore(int t) { if(t>=0 && t<=59){ return "E"; }else if(t<=69){ return "D"; }else if(t<=79){ return "C"; }else if(t<=89){ return "B"; }else if(t<=100){ return "A"; } return "Score is error!"; } }
运行结果:
【p2005问题描述】(给定一个日期,输出这个日期是该年的第几天):
/** * 第几天? Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 147758 Accepted Submission(s): 52994 Problem Description 给定一个日期,输出这个日期是该年的第几天。 Input 输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外, 可以向你确保所有的输入数据是合法的。 Output 对于每组输入数据,输出一行,表示该日期是该年的第几天。 Sample Input 1985/1/20 2006/3/12 Sample Output 20 71 Author lcy */
代码演示:
package ac; import java.util.Scanner; public class P2005 { public static void main(String[] args) { Scanner sc=new Scanner(System.in); while(sc.hasNext()){ /**收集字符串日期,解析出year\month\day*/ String strData=sc.nextLine(); String[] strs=strData.split("/"); int year=Integer.parseInt(strs[0]); int month=Integer.parseInt(strs[1]); int day=Integer.parseInt(strs[2]); int sum=getAllDays(year, month, day); System.out.println(sum); } } //判断闰年 private static boolean isLeapYear(int year){ if(year%4==0 && year%100!=0 || year%400==0){ return true; } return false; } //获得每个月份天数 private static int getMonthofDays(int month,int year){ switch (month) { /**case格式为" case 与表达式匹配的值: "*/ case 1:case 3:case 5:case 7:case 8:case 10:case 12: return 31; case 4:case 6:case 9: case 11: return 30; case 2: /**如果是闰年则2月份为29天,否则28天*/ return isLeapYear(year)? 29:28; } /**如果switch中的表达式没有匹配上,则返回值为0,一般的, * 此种情况都是默认为0,null,false*/ return 0; } //获得所有天数 public static int getAllDays(int year,int month,int day){ int sum=day; for(int m=1;m<month;m++){ sum=sum+getMonthofDays(m, year); } return sum; } }
运行结果:
相关文章推荐
- HDOJ2000、2001、2002、2003、2004
- OJ2002题、2003题、2004题、2005题、2006题
- HDU 水题 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016
- 如何用 Visual studio 2003/2005 调试 ASP 应用程序、JavaScript 代码
- [QQT 2002-2004 0Day年鉴、2003-2004 PDA年鉴]
- 【ACM】P2015(*)、P2016、P2017、P2018(*)、P2019代码演示
- Visual Studio版本简要比较:2002、2003、2005以及2008
- 将 Web 项目从 Visual Studio .Net 2002/2003 转换到 Visual Studio 2005 的分步指南
- 2002-2003 ACM-ICPC Northeastern European Regional Contest (NEERC 02) A Amusing Numbers (数学)
- 从Microsoft Visual Studio.NET 2002/2003到Microsoft Visual Studio 2005(发展趋势)
- 2001-2002 ACM Northeastern European Regional Programming Contest-Problem G-"Library"
- 将 Web 项目从 Visual Studio .Net 2002/2003 转换到 Visual Studio 2005 的分步指南
- HDU/HDOJ 1551 Cable master 2001-2002 ACM Northeastern European Regional Programming Contest
- 【ACM】P2025、P2026、P2027、P2028、P2029代码演示
- 2002-2003 ACM-ICPC Northeastern European Regional Contest (NEERC 02)
- 如何用 Visual studio 2003/2005 调试 ASP 应用程序、Javascript 代码(转)
- 如何用 Visual studio 2003/2005 调试 ASP 应用程序、Javascript 代码
- VS.NET 2002 VS 2003 VS 2005(beta1)
- 【ACM】P2011、P2012、P2013(*)、P2014代码演示
- 将 Web 项目从 Visual Studio .Net 2002/2003 转换到 Visual Studio 2005 的分步指南