1036
题目描述
给你一个年份和月份,求该月有多少天
输入
一个年份(正整数),一个月份(1-12),中间有一个空格隔开
输出
该月的天数,单独占一行。
样例输入
2012 2
样例输出
29
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int year = sc.nextInt();
int mouth = sc.nextInt();
if ((year % 4 == 0) || (year % 100 != 0 && year % 400 == 0)) {
switch (mouth) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println(31);
break;
case 4:
case 6:
case 9:
case 11:
System.out.println(30);
break;
case 2:
System.out.println(29);
break;
}
} else {
switch (mouth) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println(31);
break;
case 4:
case 6:
case 9:
case 11:
System.out.println(30);
break;
case 2:
System.out.println(28);
break;
}
}
}
}
1037
题目描述
给你一个简单的四则运算表达式,包含两个实数和一个运算符,请编程计算出结果
输入
表达式的格式为:s1 op s2, s1和s2是两个实数,op表示的是运算符(+,-,*,/),也可能是其他字符。注意运算符两侧各有一个空格。
输出
如果运算符合法,输出表达式的值;若运算符不合法或进行除法运算时除数是0,则输出"Wrong input!"。最后结果小数点后保留两位。
样例输入
1.0 + 1.0
样例输出
2.00
提示
除数是0,用|s2|<1e-10(即10的-10次方)判断
本题在课程网站上有专题讲解,第三章的边讲边写:四则运算——浮点问题、switch语句、混合输入问题、标识变量
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
double s1 = sc.nextDouble();
String op = sc.next();
double s2 = sc.nextDouble();
switch (op) {
case "+":
System.out.printf("%.2f%n", s1 + s2);
break;
case "-":
System.out.printf("%.2f%n", s1 - s2);
break;
case "*":
System.out.printf("%.2f%n", s1 * s2);
break;
case "/":
if (s2 < 1e-10) {
System.out.println("Wrong input!");
} else {
System.out.printf("%.2f%n", s1 / s2);
}
break;
default:
System.out.println("Wrong input!");
}
}
}
1038
题目描述
输入3个整数,输出绝对值最大的那个数。
输入
输入包含3个int范围内的整数,用空格隔开。
输出
输出三个数中绝对值最大的数,单独占一行。若绝对值最大的数不唯一,则输出最先出现的那个。例如,若输入为1 -3 3,则输出为-3;若输入为1 3 -3则输出为3。
样例输入
1 2 -3
样例输出
-3
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
if (Math.abs(a) >= Math.abs(b) && Math.abs(a) >= Math.abs(c)) {
System.out.println(a);
} else if (Math.abs(a) >= Math.abs(b) && Math.abs(a) <= Math.abs(c)) {
if (Math.abs(a) == Math.abs(c)) {
System.out.println(a);
} else {
System.out.println(c);
}
} else if (Math.abs(a) <= Math.abs(b) && Math.abs(a) >= Math.abs(c)) {
if (Math.abs(a) == Math.abs(b)) {
System.out.println(a);
} else {
System.out.println(b);
}
} else {
if (Math.abs(b) >= Math.abs(c)) {
System.out.println(b);
} else {
System.out.println(c);
}
}
}
}
1039
题目描述
输入一个整数n和n个整数,输出这n个整数的和。
输入
输入有两行:第一行是一个正整数n,第二行是n个整数。
输出
输出一个整数,即n个数的和。输出单独占一行。
样例输入
3 7 3 2
样例输出
12
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int sum = 0;
for (int i = 1; i <= n; i++) {
sum += sc.nextInt();
}
System.out.println(sum);
}
}
1040
题目描述
输入一个整数n,输出数列1+1/3+1/5+……前n项的和。
输入
输入只有一个正整数n。
输出
结果保留2位小数,单独占一行
样例输入
3
样例输出
1.53
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
double sum = 0;
double a;
for (int i = 1; i <= n; i++) {
a = 2 * i - 1;
sum += (1 / a);
}
System.out.printf("%.2f%n", sum);
}
}