牛客编程初学者人门训练第二部分

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);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值