【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 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;
}
}
运行结果: