目录
选自ZZULIOJ中前48题,Java解析。
1.两个数相加
题目描述
计算两个整数的和。
import java.util.*;
import java.io.*;
public class Main{
public static void main(String[] args){
Scanner cin=new Scanner(System.in);
int a=cin.nextInt(),b=cin.nextInt();
System.out.println(a+b);
}
}
2.多项式求值
题目描述
对用户输入的任一整数,输出以下多项式的值。
y=2x2+x+8
import java.util.*;
import java.io.*;
public class Main{
public static void main(String[] args){
Scanner cin=new Scanner(System.in);
int x=cin.nextInt();
System.out.println(2*x*x+x+8);
}
}
3.两个整数的四则运算
题目描述
输入两个整数num1和num2,请你设计一个程序,计算并输出它们的和、差、积、整数商及余数。
import java.util.*;
import java.io.*;
public class Main{
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
int a=cin.nextInt(),b=cin.nextInt();
System.out.print(a+b+" ");
System.out.print(a-b+" ");
System.out.print(a*b+" ");
System.out.print(a/b+" ");
System.out.print(a%b+" ");
}
}
4.三位数的分离
题目描述
从键盘输入一个任意的三位正整数,分别求出其个位、十位和百位上的数字。
import java.util.*;
import java.io.*;
public class Main{
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
int x=cin.nextInt();
System.out.print(x%10+" ");
System.out.print((x/10)%10+" ");
System.out.print((x/100)%10+" ");
}
}
5.整数幂
题目描述
输入3个整数,输出它们的1次幂、2次幂和3次幂。
输入
输入3整数,用空格隔开。
输出
输出3行,每行3个整数,分别是它们的1次幂、2次幂和3次幂,每个整数占9列,不足9列左对齐。
样例输入
1 5 100
样例输出
1 1 1
5 25 125
100 10000 1000000
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a, b, c;
while (sc.hasNext()) {
a = sc.nextInt();
b = sc.nextInt();
c = sc.nextInt();
System.out.println(String.format("%-9d%-9d%-9d", a, a*a, a*a*a));
System.out.println(String.format("%-9d%-9d%-9d", b, b*b, b*b*b));
System.out.println(String.format("%-9d%-9d%-9d", c, c*c, c*c*c));
}
}
}
6.等差数列求和
题目描述
给出三个整数,分别表示等差数列的第一项、最后一项和公差,求该数列的和。
输入
输入三个整数,之间用空格隔开。第1个数作为首项,第2个数作为末项,第3个数作为公差。
输出
输出占一行,包含一个整数,为该等差数列的和。
样例输入 Copy
2 11 3
样例输出 Copy
26
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a, b, c;
a = sc.nextInt();
b = sc.nextInt();
c = sc.nextInt();
int sum=0;
for(int i=a;i<=b;i+=c) sum+=i;
System.out.println(sum);
}
}
7.鸡兔同笼
题目描述
鸡和兔关在一个笼子里,鸡有2只脚,兔有4只脚,没有例外。已知现在可以看到笼子里m个头和n只脚,求鸡和兔子各有多少只?
输入
输入两个整数heads和feet,分别代表笼子里头的个数和脚的个数。(假设heads和feet都在合法的数据范围内)
输出
依次输出鸡和兔的只数。(数字为0的也要输出)
样例输入 Copy
12 40
样例输出 Copy
4 8
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
int n,m;
n=cin.nextInt();
m=cin.nextInt();
int x=(4*n-m)/2;
System.out.print(x+" ");
System.out.print(n-x);
}
}
8.美元和人民币
题目描述
美元越来越贬值了,手上留有太多的美元似乎不是件好事。赶紧算算你的那些美元还值多少人民币吧。假设美元与人民币的汇率是1美元兑换6.5573元人民币,编写程序输入美元的金额,输出能兑换的人民币金额。
输入
输入一个实数,为美元的金额。
输出
输出能兑换的人民币的数值。输出保留2位小数。
样例输入 Copy
100
样例输出 Copy
655.73
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
double x=cin.nextDouble();
final double op=6.5573;
double ans=x*op;
System.out.printf("%.2f",ans);
}
}
9.平均分
题目描述
已知某位学生的数学、英语和计算机课程的成绩,求该生三门课程的平均分。
输入
输入三个整数,数据之间由空格隔开。
输出
输出占一行,包含一个实数,为三门课的平均分,保留两位小数。
样例输入 Copy
87 73 93
样例输出 Copy
84.33
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
int a,b,c;
a=cin.nextInt();
b=cin.nextInt();
c=cin.nextInt();
double sum=a+b+c;
System.out.printf("%.2f",sum/3);
}
}
10.求圆的周长和面积
题目描述
输入圆的半径,求圆的周长和面积。 要求定义圆周率为如下宏常量
#define PI 3.14159
输入
输入半径r的值,为一实数。
输出
输出一行,包括周长和面积。数据之间用一个空格隔开,数据保留小数后面两位。
样例输入 Copy
3
样例输出 Copy
18.85 28.27
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
final double PI=3.14159;
double r;
r=cin.nextDouble();
double x=2*PI*r;
double y=PI*r*r;
System.out.printf("%.2f %.2f",x,y);
}
}
11.圆柱体表面积
题目描述
输入圆柱体的底面半径r和高h,计算圆柱体的表面积并输出到屏幕上。要求定义圆周率为如下宏常量
#define PI 3.14159
输入
输入两个实数,为圆柱体的底面半径r和高h。
输出
输出一个实数,即圆柱体的表面积,保留2位小数。
样例输入 Copy
42.1 71.6
样例输出 Copy
30076.14
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
final double PI=3.14159;
double r,h;
r=cin.nextDouble();
h=cin.nextDouble();
double x=2*PI*r*r+2*PI*r*h;
System.out.printf("%.2f",x);
}
}
12.求绝对值
题目描述
求实数的绝对值。
输入
输入一个实数。
输出
输出它的绝对值,结果保留两位小数
样例输入 Copy
-234.00
样例输出 Copy
234.00
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
double x;
x=cin.nextDouble();
if(x<0) x=-x;
System.out.printf("%.2f",x);
}
}
13.求两点之间的距离
题目描述
给定A(x1, y1), B(x2, y2)两点坐标,计算它们间的距离。
输入
输入包含四个实数x1, y1, x2, y2,分别用空格隔开,含义如描述。其中0≤x1,x2,y1,y2≤100。
输出
输出占一行,包含一个实数d,表示A, B两点间的距离。结果保留两位小数。
样例输入 Copy
1 1.5 2 2.5
样例输出 Copy
1.41
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
double x1,y1,x2,y2;
x1=cin.nextDouble();
y1=cin.nextDouble();
x2=cin.nextDouble();
y2=cin.nextDouble();
double sum=Math.sqrt(Math.pow(x1-x2, 2)+Math.pow(y1-y2,2));
System.out.printf("%.2f",sum);
}
}
14.求三角形的面积
题目描述
给出三角形的三条边,求三角形的面积。
输入
输入三角形的三条边长(实数),数据之间用空格隔开。
输出
输出三角形的面积,结果保留2位小数。
样例输入 Copy
2.5 4 5
样例输出 Copy
4.95
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
double a,b,c;
a=cin.nextDouble();
b=cin.nextDouble();
c=cin.nextDouble();
double s=(a+b+c)/2;
double sum=Math.sqrt(s*(s-a)*(s-b)*(s-c));
System.out.printf("%.2f",sum);
}
}
15.计算时间间隔
题目描述
读入两个用“时:分:秒”表示的时间点,计算以秒为单位的时间间隔。
输入
输入有两行,每行是一个用“时:分:秒”表示的时间点。测试数据保证第二个时间点晚于第一个时间点。
输出
输出一个整数,表示时间间隔的秒数。
样例输入 Copy
08:00:00
09:00:00
样例输出 Copy
3600
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
String s1,s2;
s1=cin.nextLine();
String a1[]=s1.split(":");
int x1=Integer.parseInt(a1[0]);
int y1=Integer.parseInt(a1[1]);
int z1=Integer.parseInt(a1[2]);
s2=cin.nextLine();
String a2[]=s2.split(":");
int x2=Integer.parseInt(a2[0]);
int y2=Integer.parseInt(a2[1]);
int z2=Integer.parseInt(a2[2]);
int sum=(z2-z1)+(y2-y1)*60+(x2-x1)*3600;
System.out.println(sum);
}
}
16.银行汇率
题目描述
设银行1年期定期存款年利率为2.25%,存款本金为capital元,试编程计算并输出n年后的本利之和。
(注: 目前银行活期存款的利息是按单利计息的。如果是定期存款,连本带息转入下一个存期,那么会继续计入定期的,相当于是复利。)
输入
输入一个正整数和一个实数,分别代表存款年数和存款本金。
输出
输出一个实数为n年后的本利之和,小数点后保留6位数字。
样例输入 Copy
2 100.0
样例输出 Copy
104.550625
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
int n;
double x;
n=cin.nextInt();
x=cin.nextDouble();
double sum=Math.pow(1.0225,n);
System.out.printf("%.6f",sum*x);
}
}
17.判断正整数位数
题目描述
给定一个不多于5位的正整数,判断它是几位数,并输出。
输入
一个不多于5位的正整数。
输出
输出正整数的位数,单独占一行。
样例输入 Copy
111
样例输出 Copy
3
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
int n;
n=cin.nextInt();
int sum=0;
while(n>0)
{
sum++;
n/=10;
}
System.out.printf("%d",sum);
}
}
18.奇数偶数
题目描述
输入一个整数,判断该数是奇数还是偶数。
输入
输入整数n。
输出
如果该数是奇数就输出“odd”,偶数就输出“even”(输出不含双引号)。
样例输入 Copy
-3
样例输出 Copy
odd
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
int n;
n=cin.nextInt();
if(n%2==0) System.out.printf("even");
else System.out.printf("odd");
}
}
19.公园门票
题目描述
某公园门票的票价是每人50元,一次购票满30张,每张可以少收2元。试编写自动计费系统程序。
输入
输入一个正整数,表示购票的数量。
输出
输出一个整数,表示用户实际需要支付的金额。
样例输入 Copy
30
样例输出 Copy
1440
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
int n;
n=cin.nextInt();
if(n>=30) System.out.printf("%d",48*n);
else System.out.printf("%d",n*50);
}
}
20.两整数排序
题目描述
从键盘输入两个整数x,y,按从小到大的顺序输出它们的值。
输入
输入两个整数x,y。
输出
按从小到大的顺序输出它们的值。数据之间以空格间隔。
样例输入 Copy
20 16
样例输出 Copy
16 20
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
int x,y;
x=cin.nextInt();
y=cin.nextInt();
if(x>y) System.out.printf("%d %d",y,x);
else System.out.printf("%d %d",x,y);
}
}
21.三个整数的最大值
题目描述
从键盘输入三个整数x,y和z,求出其中最大的数。
输入
输入三个整数,用空格隔开。
输出
输出最大整数。
样例输入 Copy
20 16 18
样例输出 Copy
20
import java.util.Scanner;
import java.util.Arrays;
public class Main {
public static void main(String[] args)
{
Scanner cin=new Scanner(System.in);
int a[]=new int[3];
for(int i=0;i<3;i++) a[i]=cin.nextInt();
Arrays.sort(a);
System.out.printf("%d\n",a[2]);
}
}
22.三个整数排序
题目描述
从键盘输入三个整数x,y和z,按从大到小的顺序输出它们的值。
输入
输入三个整数x,y和z。
输出
按从大到小的顺序输出它们的值。
样例输入 Copy
20 16 18
样例输出 Copy
20 18 16
import java.util.Scanner;
import java.util.Arrays;
public class Main {
public static void main(String[] args)
{
Scanner cin=new Scanner(System.in);
int a[]=new int[3];
for(int i=0;i<3;i++) a[i]=cin.nextInt();
Arrays.sort(a);
for(int i=2;i>=0;i--) System.out.printf("%d ",a[i]);
}
}
23.大小写转换
题目描述
输入一个字符,若是小写字母,则变为大写输出,否则,原样输出。
输入
输入为一个字符。
输出
按题目要求输出一个字符,单独占一行。
样例输入 Copy
a
样例输出 Copy
A
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
String a=input.nextLine();
char ch=a.charAt(0);
if(ch>='a'&&ch<='z')
ch=(char)(ch-32);
System.out.println(ch);
}
}
24.计算字母序号
题目描述
输入一个英文字母(可能是大写,也可能是小写),输出该字母在字母表中的序号(’a’和’A’的序号为1)。
输入
输入只有一个英文字母。
输出
输出一个整数,表示该字母在字母表的序号,输出单独占一行。
样例输入 Copy
D
样例输出 Copy
4
import java.util.Scanner;
public class Main {
public static void main(String[] args)
{
Scanner cin=new Scanner(System.in);
String x=cin.nextLine();
char ch=x.charAt(0);
if(ch>='a'&&ch<='z') ch-=32;
int y=ch-64;
System.out.printf("%d\n",y);
}
}
25.最大字符
题目描述
给你三个ASCII字符(不含空白字符:包括空格、制表符\t、回车换行符\n),找出其中最大的那个
输入
输入包含三个字符,之间有一个空格隔开。
输出
输出ASCII码最大的那个字符,占一行。
样例输入 Copy
a b c
样例输出 Copy
c
import java.util.Scanner;
public class Main {
public static void main(String[] args)
{
Scanner cin=new Scanner(System.in);
String x=cin.nextLine();
char a=x.charAt(0),b=x.charAt(2),c=x.charAt(4);//1和3是空格
if(a>b&&a>c) System.out.print(a);
if(b>a&&b>c) System.out.print(b);
if(c>b&&c>a) System.out.print(c);
}
}
26.字符类型判断
题目描述
从键盘输入一个字符,判断该字符是否大写字母、小写字母、数字字符或其他字符。分别输出对应的提示信息。
输入
输入一个字符。
输出
如果该字符是大写字母,则输出“upper”;若是小写字母,则输出“lower”;若是数字字符,则输出“digit”;若是其他字符,则输出“other”。(输出不含双引号)。
样例输入 Copy
E
样例输出 Copy
upper
import java.util.Scanner;
public class Main {
public static void main(String[] args)
{
Scanner cin=new Scanner(System.in);
String x=cin.nextLine();
char a=x.charAt(0);
if(a>='A'&&a<='Z') System.out.printf("upper");
else if(a>='a'&&a<='z') System.out.printf("lower");
else if(a>='0'&&a<='9') System.out.printf("digit");
else System.out.printf("other");
}
}
27.判断水仙花数
题目描述
春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的:
“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=13+53+33。
现在要求输入一个三位数,判断该数是否是水仙花数,如果是,输出“yes”,否则输出“no”
输入
输入一个三位的正整数。
输出
输出“yes”或“no”。
样例输入 Copy
153
样例输出 Copy
yes
import java.util.Scanner;
public class Main {
public static void main(String[] args)
{
Scanner cin=new Scanner(System.in);
int n;
n=cin.nextInt();
int x=n%10,y=(n/10)%10,z=(n/100)%10;
if((x*x*x+y*y*y+z*z*z==n)&&n>=100&&n<1000) System.out.printf("yes");
else System.out.printf("no");
}
}
28.I love 闰年!
题目描述
根据一个年份,判断是否是闰年。
输入
输入为一个整数,表示一个年份。
输出
如果是闰年,输出"Yes",否则输出"No"。输出单独占一行。
样例输入 Copy
2012
样例输出 Copy
Yes
import java.util.Scanner;
public class Main {
public static void main(String[] args)
{
Scanner cin=new Scanner(System.in);
int n;
n=cin.nextInt();
if((n%400==0)||((n%4==0)&&(n%100!=0))) System.out.printf("Yes");
else System.out.printf("No");
}
}
29.三角形判定
题目描述
给你三个正整数,判断用这三个整数做边长是否能构成一个三角形。
输入
输入为三个int范围的正整数,中间有一个空格隔开。
输出
如果能构成三角形,输出"Yes",否则输出"No"
样例输入 Copy
3 4 5
样例输出 Copy
Yes
import java.util.Scanner;
public class Main {
public static void main(String[] args)
{
Scanner cin=new Scanner(System.in);
int x,y,z;
x=cin.nextInt();
y=cin.nextInt();
z=cin.nextInt();
if((x+y>z)&&(x+z>y)&&(y+z>x)&&(x-y<z)&&(x-z<y)&&(y-z<x)) System.out.printf("Yes");
else System.out.printf("No");
}
}
30.判断直角三角形
题目描述
输入三个正整数,判断用这三个整数做边长是否能构成一个直角三角形。
输入
输入三个正整数。
输出
能否构成直角三角形。如能输出:yes.若不能,输出:no。
样例输入 Copy
6 8 10
样例输出 Copy
yes
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner cin = new Scanner(System.in);
int a = cin.nextInt();
int b = cin.nextInt();
int c = cin.nextInt();
if ((a * a + b * b == c * c) || (b * b + c * c == a * a) || (a * a + c * c == b * b)) {
System.out.println("yes");
}else{
System.out.println("no");
}
}
}
31.判断点在第几象限
题目描述
从键盘输入2个整数x、y值,表示平面上一个坐标点,判断该坐标点处于第几象限,并输出相应的结果。
输入
输入x,y值表示一个坐标点。坐标点不会处于x轴和y轴上,也不会在原点。
输出
输出对应的象限,用数字1,2,3,4分别对应四个象限。>
样例输入 Copy
1 1
样例输出 Copy
1
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner cin = new Scanner(System.in);
int x,y;
x=cin.nextInt();
y=cin.nextInt();
if(x>0&&y>0) System.out.printf("1\n");
else if(x<0&&y>0) System.out.printf("2\n");
else if(x<0&&y<0) System.out.printf("3\n");
else if(x>0&&y<0) System.out.printf("4\n");
}
}
32.员工薪水
题目描述
某公司规定,销售人员工资由基本工资和销售提成两部分组成,其中基本工资是1500元/月,销售提成规则如下:
销售额小于等于10000元时,按照5%提成;
销售额大于10000元但小于等于50000元时,超出10000部分按照3%提成;
销售额大于50000元时,超出50000部分按照2%提成。
编写程序,根据销售额计算员工收入。
输入
输入一个整数表示销售额
输出
输出员工的薪水,保留2位小数。
样例输入 Copy
30000
样例输出 Copy
2600.00
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
double n = cin.nextDouble();
double x = 1500;
double sum = 0;
if(n <= 10000) sum = x + n * 0.05;
else if(n <= 50000) sum = x + 10000 * 0.05 + (n - 10000) * 0.03;
else sum = x + 10000 * 0.05 + 40000 * 0.03 + (n - 50000) * 0.02;
System.out.printf("%.2f", sum);
}
}
33.五级制成绩
题目描述
给定一个百分制成绩, 请根据百分制成绩输出其对应的等级。转换关系如下:
90分及以上为’A’,80~89为’B’, 70~79为’C’, 60~69为’D’,60分以下为’E’。
输入
一个百分制成绩(0~100的整数)。
输出
输出对应的等级。
样例输入 Copy
100
样例输出 Copy
A
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
double n = cin.nextDouble();
if(n>=90) System.out.printf("A");
else if(n>=80&&n<90) System.out.printf("B");
else if(n>=70&&n<80) System.out.printf("C");
else if(n>=60&&n<70) System.out.printf("D");
else System.out.printf("E");
}
}
34.夏季促销
题目描述
商场夏季促销,购物500元以下,不打折;购物500元(含)以上,95折;购物1000元(含)以上,9折;购物3000元(含)以上,85折;购物5000元(含)以上,8折。根据消费金额,确定用户实际需要支付的数目。
输入
输入一个实数,表示消费金额。
输出
输出一个实数,表示用户实际需要支出的数目,保留两位小数。
样例输入 Copy
5100
样例输出 Copy
4080.00
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
int n=cin.nextInt();
double sum=0.0;
if(n<500) sum=n;
else if(n>=500&&n<1000) sum=0.95*n;
else if(n>=1000&&n<3000) sum=0.9*n;
else if(n>=3000&&n<5000) sum=0.85*n;
else if(n>=5000) sum=0.8*n;
System.out.printf("%.2f\n",sum);
}
}
35.分段函数求值
题目描述
已知:y是x的函数,
当x<-2时,y=7-2x;
当x>=-2,且x<3时,y=5-|3x+2|;
当x>=3时,y=3x+4
输入
任意输入一个整数x。
输出
输出为一个整数,即x对应的函数值。
样例输入 Copy
2
样例输出 Copy
-3
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
int x=cin.nextInt();
int y=0;
if(x<-2) y=7-2*x;
else if(x>=-2&&x<3) y=5-Math.abs(3*x+2);
else if(x>=3) y=3*x+4;
System.out.printf("%d\n",y);
}
}
36.某年某月有多少天
题目描述
给你一个年份和月份,求该月有多少天
输入
一个年份(正整数),一个月份(1-12),中间有一个空格隔开
输出
该月的天数,单独占一行。
样例输入 Copy
2012 2
样例输出 Copy
29
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
int x,y;
x=cin.nextInt();
y=cin.nextInt();
int[] a={0,31,28,31,30,31,30,31,31,30,31,30,31};
if((x%400==0)||((x%4==0)&&(x%100!=0)))
if(y==2) a[2]=29;
System.out.printf("%d\n",a[y]);
}
}
37.四则运算
题目描述
给你一个简单的四则运算表达式,包含两个实数和一个运算符,请编程计算出结果
输入
表达式的格式为:s1 op s2, s1和s2是两个实数,op表示的是运算符(+,-,*,/),也可能是其他字符。注意运算符两侧各有一个空格。
输出
如果运算符合法,输出表达式的值;若运算符不合法或进行除法运算时除数是0,则输出"Wrong input!"。最后结果小数点后保留两位。
样例输入 Copy
1.0 + 1.0
样例输出 Copy
2.00
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
double s1 = cin.nextDouble();
String op = cin.next();
char ch = op.charAt(0);
double s2 = cin.nextDouble();
double n = 0;
switch(ch)
{
case '+':
System.out.printf("%.2f", s1 + s2);
break;
case '-':
System.out.printf("%.2f", s1 - s2);
break;
case '*':
System.out.printf("%.2f", s1 * s2);
break;
case '/':
if(Math.abs(s2) > 1e-10)
System.out.printf("%.2f", s1 / s2);
else
System.out.printf("Wrong input!\n");
break;
default:
System.out.printf("Wrong input!\n");
}
}
}
38.绝对值最大
题目描述
输入3个整数,输出绝对值最大的那个数。
输入
输入包含3个int范围内的整数,用空格隔开。
输出
输出三个数中绝对值最大的数,单独占一行。若绝对值最大的数不唯一,则输出最先出现的那个。例如,若输入为1 -3 3,则输出为-3;若输入为1 3 -3则输出为3。
样例输入 Copy
1 2 -3
样例输出 Copy
-3
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int a,b,c;
a=cin.nextInt();
b=cin.nextInt();
c=cin.nextInt();
if(Math.abs(a)>=Math.abs(b)&&Math.abs(a)>=Math.abs(c)) System.out.printf("%d\n",a);
else if(Math.abs(b)>=Math.abs(a)&&Math.abs(b)>=Math.abs(c)) System.out.printf("%d\n",b);
else if(Math.abs(c)>=Math.abs(a)&&Math.abs(c)>=Math.abs(b)) System.out.printf("%d\n",c);
}
}
39.n个数求和
题目描述
输入一个整数n和n个整数,输出这n个整数的和。
输入
输入有两行:第一行是一个正整数n,第二行是n个整数。
输出
输出一个整数,即n个数的和。输出单独占一行。
样例输入 Copy
3
7 3 2
样例输出 Copy
12
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int n=cin.nextInt();
int sum=0;
for(int i=0;i<n;i++)
{
int x;
x=cin.nextInt();
sum+=x;
}
System.out.printf("%d\n",sum);
}
}
40.数列求和1
题目描述
输入一个整数n,输出数列1+1/3+1/5+……前n项的和。
输入
输入只有一个正整数n。
输出
结果保留2位小数,单独占一行
样例输入 Copy
3
样例输出 Copy
1.53
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int n=cin.nextInt();
double sum=0;
double f=1;
for(int i=0;i<n;i++)
{
sum+=1/f;
f+=2;
}
System.out.printf("%.2f\n",sum);
}
}
41.数列求和2
题目描述
输入一个整数n,输出数列1-1/3+1/5-……前n项的和。
输入
输入只有一个整数n。
输出
结果保留2为小数,单独占一行。
样例输入 Copy
3
样例输出 Copy
0.87
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int n=cin.nextInt();
double sum=0;
double f=1;
double op=1;
for(int i=0;i<n;i++)
{
sum+=op/f;
f+=2;
op=-op;
}
System.out.printf("%.2f\n",sum);
}
}
42.数列求和3
题目描述
求1-2/3+3/5-4/7+5/9-6/11+...的前n项和,结果保留3位小数。
输入
输入正整数n(n>0)。
输出
输出一个实数,保留3位小数,单独占一行。
样例输入 Copy
5
样例输出 Copy
0.917
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int n=cin.nextInt();
double sum=0;
double f=1;
double op=1;
for(int i=1;i<=n;i++)
{
sum+=(op*i)/f;
f+=2;
op=-op;
}
System.out.printf("%.3f\n",sum);
}
}
43.最大值
题目描述
输入一个整数n和n个整数,输出这n个整数的最大值。
输入
输入有两行:第一行是一个正整数n,第二行是n个整数。
输出
输出包含一个整数,即n个数中的最大值,单独占一行。
样例输入 Copy
4
3 7 5 6
样例输出 Copy
7
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int n=cin.nextInt();
int x=cin.nextInt();
int ans=x;
for(int i=1;i<n;i++)
{
x=cin.nextInt();
if(ans<x) ans=x;
}
System.out.println(ans);
}
}
44.不及格率
题目描述
输入n和n个学生成绩(实数),输出不及格率。
输入
输入的第一行是一个整数n,第二行是n个实数,用空格隔开。
输出
输出一个实数,表示不及格率,结果保留2位小数,单独占一行。
样例输入 Copy
8
98 45 86 79 56 75 90 70
样例输出 Copy
0.25
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int n=cin.nextInt();
double sum=0;
for(int i=1;i<=n;i++)
{
double x;
x=cin.nextDouble();
if(x<60) sum++;
}
sum/=n;
System.out.printf("%.2f",sum);
}
}
45.数值统计
题目描述
统计给定的n个数中,负数、零和正数的个数。
输入
输入的第一个数是整数n(n<100),表示需要统计的数值的个数,然后是n个整数
输出
输出一行a,b和c,分别表示给定的数据中负数、零和正数的个数。
样例输入 Copy
6 0 1 2 3 -1 0
样例输出 Copy
1 2 3
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int n=cin.nextInt();
int a=0,b=0,c=0;
for(int i=0;i<n;i++)
{
int x;
x=cin.nextInt();
if(x>0) a++;
else if(x<0) b++;
else c++;
}
System.out.printf("%d %d %d\n",b,c,a);
}
}
46.奇数乘积
题目描述
给你n个整数,求他们中所有奇数的乘积。
输入
第一个数为n,表示本组数据一共有n个,接着是n个整数,你可以假设每组数据必定至少存在一个奇数。
输出
输出n个数中的所有奇数的乘积,占一行。
样例输入 Copy
5 2 5 4 6 7
样例输出 Copy
35
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int n=cin.nextInt();
int sum=1;
for(int i=0;i<n;i++)
{
int x;
x=cin.nextInt();
if(x%2!=0) sum*=x;
}
System.out.printf("%d\n",sum);
}
}
47.对数表
题目描述
输入两个正整数m和n,输出m到n之间每个整数的自然对数。
输入
输入包括两个整数m和n(m<=n),之间用一个空格隔开。
输出
每行输出一个整数及其对数,整数占4列,对数占8列,右对齐,对数保留4位小数。
样例输入 Copy
2 4
样例输出 Copy
2 0.6931
3 1.0986
4 1.3863
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin= new Scanner(System.in);
int l=cin.nextInt();
int r=cin.nextInt();
for(int i =l;i<=r; i++)
System.out.printf("%4d%8.4f\n", i, Math.log(i));
}
}
48.阶乘表
题目描述
输入一个正整数n(n<=20),输出1到n之间阶乘表。
输入
输入只有一个正整数n。
输出
输出1到n之间的阶乘表,格式见输出样例。每行两个数据,第一个数据占4列,第二个数据占20列,左对齐。
样例输入 Copy
5
样例输出 Copy
1 1
2 2
3 6
4 24
5 120
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin= new Scanner(System.in);
int n=cin.nextInt();
for(int i=1;i<=n;i++)
{
int m=i;
long sum=1;
for(int j=1;j<=m;j++) sum*=j;
System.out.printf("%-4d%-20d\n",i,sum);
}
}
}