1.您能活多少秒
以下两种方法都能成功解决,但使用RufferedReader
类实现所花费的时间和空间都要少,所以推荐使用方法二。
//方法一:使用Scanner类输入
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
int age = scan.nextInt();
long secends = 31560000;
System.out.print(age*secends);
}
}
//方法二:使用BufferedReader类输入
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main{
public static void main(String[] args)throws IOException{
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
String str = buf.readLine();
int age = Integer.parseInt(str);
long secends = 31560000;
System.out.print(age*secends);
}
}
2.出生日期输入输出
题目描述
输入一个人的出生日期(包括年月日),将该生日中的年、月、日分别输出。
输入描述:
输入只有一行,出生日期,包括年月日,年月日之间的数字没有分隔符。
输出描述:
三行,第一行为出生年份,第二行为出生月份,第三行为出生日期。输出时如果月份或天数为1位数,需要在1位数前面补0。
示例1
输入
20130225
输出
year=2013
month=02
date=25
备注:
通过scanf函数的%m格式控制可以指定输入域宽,输入数据域宽(列数),按此宽度截取所需数据;通过printf函数的%0格式控制符,输出数值时指定左面不使用的空位置自动填0。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main{
public static void main(String[] args)throws IOException{
BufferedReader buff = new BufferedReader(new InputStreamReader(System.in));
String str = buff.readLine();
String year = str.substring(0,4);
String month = str.substring(4,6);
String date = str.substring(6,8);
System.out.println("year="+ year);
System.out.println("month="+ month);
System.out.println("date="+ date);
}
}
//以上代码可以优化一下,将输入语句写在输出语句里面,可以减少代码量
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main{
public static void main(String[] args)throws IOException{
BufferedReader buff = new BufferedReader(new InputStreamReader(System.in));
String str = buff.readLine();
System.out.println("year="+ str.substring(0,4));
System.out.println("month="+ str.substring(4,6));
System.out.println("date="+ str.substring(6,8));
}
}
3.按照格式输入并交换输出
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main{
public static void main(String[] args)throws IOException{
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
String str = buf.readLine();
String[] s = str.split(",");
String[] a = s[0].split("=");
String[] b = s[1].split("=");
System.out.print(a[0]+"="+b[1]+","+b[0]+"="+a[1]);
}
}
//这里补充C/C++语言的解法
int main(){
int a,b;
scanf("a=%d,b=%d",&a,&b);
printf("a=%d,b=%d",b,a);
return 0;
}
4.字符转ASCII码
import java.io.IOException;
import java.io.InputStreamReader;
public class Main{
public static void main(String[] args)throws IOException{
char s = (char)System.in.read();
System.out.print((int)s);
}
}
5.计算带余除法
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main{
public static void main(String[] args)throws IOException{
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
String[] str = buf.readLine().split(" ");
int a = Integer.parseInt(str[0]);
int b = Integer.parseInt(str[1]);
System.out.print((int)a/b + " " + (int)a%b);
}
}
6.反向输出一个四位数
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main{
public static void main(String[] args)throws IOException{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String str=br.readLine();
char[] chararray=str.toCharArray();
for(int i=chararray.length-1;i>=0;i--){
System.out.print(chararray[i]);
}
}
}
7.浮点数的个位数字
//方法一浮点类型转换为整型,然后通过取余得到个位数
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
double a = scan.nextDouble();
int b = (int)a;
System.out.print(b%10);
}
}
//方法二调用Java中的函数实现
import java.io.*;
public class Main{
public static void main(String [] args) throws IOException{
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
String str = bf.readLine();
char c = str.charAt(str.indexOf(".") - 1);
System.out.println(c);
}
}
//方法三用C语言写更加简单
int main(){
double a;
scanf("%lf",&a);
printf("%d",(int)a%10); //将浮点类型转换为整型,然后通过取余得到个位数
return 0;
}
8.计算球体的体积
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main{
public static void main(String[] args)throws IOException{
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
String str = buf.readLine();
double r = Double.parseDouble(str);
double V = 4*r*r*r*3.1415926/3;
System.out.printf("%.3f",V);
}
}
9.大小写转换
题目描述
实现字母的大小写转换。多组输入输出。
输入描述:
多组输入,每一行输入大写字母。
输出描述:
针对每组输入输出对应的小写字母。
示例1
输入
A
B
输出
a
b
备注:
多组输入过程中要注意“回车”也是字母,所以要“吸收”(getchar())掉该字母。
//方法一
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
while(scan.hasNext()){
char c = scan.next().charAt(0);
System.out.printf("%c",c+32);
System.out.println();
}
}
}
//方法二
import java.io.*;
import java.util.Scanner;
public class Main {
public static void main(String[] args)throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String tr;
while ((tr=br.readLine())!=null){
System.out.println(tr.toLowerCase());
}
}
}
//方法三
int main(){
char ch;
while (scanf("%c",&ch)!=EOF){
getchar();
printf("%c\n",ch+32);
}
}