一.简介

​ 本系列是用来分享在洛谷LeetCode的有趣的题目,使用Java编写且代码解释以注释为主。

​ 本篇涉及:输入输出,if判断,for循环,方法(即函数),数组,AscII码


二.题目

1. P5704 【深基2.例6】字母转换

【深基2.例6】字母转换

题目描述

输入一个小写字母,输出其对应的大写字母。例如输入 q[回车] 时,会输出 Q。

输入格式

输出格式

样例 #1

样例输入 #1

1
q

样例输出 #1

1
Q
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//AC代码
//导入util包
import java.util.*;

class Main {
public static void main(String args[]) throws Exception {
// 创建一个Scanner对象
Scanner cin = new Scanner(System.in);
// 读取用户输入的字符
char a = cin.next().charAt(0);
// 关闭Scanner对象
cin.close();
// 将小写字母转换为大写字母
System.out.println((char) (a - 'a' + 'A'));
}
}

2. P5705 【深基2.例7】数字反转

【深基2.例7】数字反转

题目描述

输入一个不小于 $100$ 且小于 $1000$,同时包括小数点后一位的一个浮点数,例如 $123.4$ ,要求把这个数字翻转过来,变成 $4.321$ 并输出。

输入格式

一行一个浮点数

输出格式

一行一个浮点数

样例 #1

样例输入 #1

1
123.4

样例输出#1

1
4.321
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//AC代码
import java.util.*;

class Main {
public static void main(String args[]) throws Exception {
// 创建一个Scanner对象
Scanner cin = new Scanner(System.in);
// 读取用户输入的字符串,使用数组存储
// nextLine()方法读取一行
String str = cin.nextLine();
// 关闭Scanner对象
cin.close();
for (int i = str.length(); i > 0; i--) {
/*
* 逆序输出字符串
* charAt()方法返回指定下标的字符
* (i-1)是因为下标从0开始,而字符串的长度是从1开始的
*/
System.out.print(str.charAt(i - 1));
}
}
}

3. P5715 【深基3.例8】三位数排序

题目描述

给出三个整数 $a,b,c(0\le a,b,c \le 100)$,要求把这三位整数从小到大排序。

输入格式

输入三个整数 $a,b,c$,以空格隔开。

输出格式

输出一行,三个整数,表示从小到大排序后的结果。

样例 #1

样例输入 #1

1
1 14 5

样例输出 #1

1
1 5 14

样例 #2

样例输入 #2

1
2 2 2

样例输出 #2

1
2 2 2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
//AC代码

import java.util.*;

class Main {
public static void main(String args[]) throws Exception {
// 创建一个Scanner对象
Scanner cin = new Scanner(System.in);
int a = cin.nextInt();
int b = cin.nextInt();
int c = cin.nextInt();
// 关闭Scanner对象
cin.close();
// 排序
if (a > b) {
int temp = a;
a = b;
b = temp;
}
if (b > c) {
int temp = b;
b = c;
c = temp;
}
if (a > b) {
int temp = a;
a = b;
b = temp;
}
// 输出
System.out.println(a + " " + b + " " + c);
}
}

4. P5716 【深基3.例9】月份天数

题目描述

输入年份和月份,输出这一年的这一月有多少天。需要考虑闰年。

输入格式

输入两个正整数,分别表示年份 $y$ 和月数 $m$,以空格隔开。

输出格式

输出一行一个正整数,表示这个月有多少天。

样例 #1

样例输入 #1

1
1926 8

样例输出 #1

1
31

样例 #2

样例输入 #2

1
2000 2

样例输出 #2

1
29

提示

数据保证 $1582 \leq y \leq 2020$,$1 \leq m \leq 12$。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import java.util.*;

class Main {
public static void main(String args[]) throws Exception {
// 创建一个Scanner对象
Scanner cin = new Scanner(System.in);
// 读取用户输入的年份,月份
int year = cin.nextInt();
int month = cin.nextInt();
// 关闭Scanner对象
cin.close();
// 创建days数组,用于存放每个月的天数
int[] days = { 31, isleap(year) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
// 输出月份天数
System.out.println(days[month - 1]);
}

// 方法:判断是否是闰年
public static boolean isleap(int year) {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
}