5-1 编写程序,用尽可能少的语句判断一个整数是否闰年,是返回true,否返回false。
只要满足一个条件就是闰年:
1. 能被4整除,但不能被100整除
2. 能被400整除
package practice;
import java.util.Scanner;
public class LeapYear {
static boolean judge(int i) {
if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0)
return true;
else
return false;
}
public static void main(String args[]) {
System.out.println("请输入年份:");
Scanner scan = new Scanner(System.in);
int s = scan.nextInt();
System.out.println(judge(s));
}
}
5-2 编写程序,打印10以内的杨辉三角。
package practice;
import java.util.Scanner;
public class YanghuiTriangle {
public static void main(String args[]) {
System.out.println("请输入行数:");
Scanner in = new Scanner(System.in);
int s = in.nextInt();
int arry[][] = new int[s][s];
for (int i = 0; i < s; i++) {
arry[i][0] = arry[i][i] = 1;
for (int j = 1; j < i; j++)
arry[i][j] = arry[i - 1][j - 1] + arry[i - 1][j];
}
for (int i = 0; i < s; i++) {
for (int j = 0; j <= i; j++) {
System.out.print(arry[i][j] + " ");
}
System.out.println();
}
}
}
5-3 编写程序,判断一个整型数是否是水仙花数。
水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。水仙花数只是自幂数的一种,严格来说3位数的3次幂数才称为水仙花数。
(例如:1^3 + 5^3+ 3^3 = 153)
package practice;
import java.util.Scanner;
public class DaffodilNumber {
public static void main(String args[]) {
System.out.println("请输入一个三位数:");
Scanner in = new Scanner(System.in);
int i = in.nextInt();
int a = i / 100;// 获得百位数
int b = (i / 10) % 10;// 获得十位数
int c = i % 10;// 获得个位数
if ((Math.pow(a, 3) + Math.pow(b, 3) + Math.pow(c, 3)) == i) {
System.out.println(i + "是水仙花数");
} else {
System.out.println(i + "不是水仙花数");
}
}
}
5-4 π/4=1-1/3+1/5-1/7+…,编写程序,求π的值,直到最后一项的绝对值小于10^(-6)。
package practice;
public class Test8 {
public static void main(String args[]) {
double i = 1.0;
double s = 1.0;
int f = -1;
double t = 1.0;
while (t >= 0.000001) {
i = i + 2;
t = 1 / i;
s = s + t * f;
f = -f;
}
s=4*s;
System.out.printf("%.2f",s);
}
}
5-5 编写程序,求100~200之间的素数。
package practice;
public class PrimeNumber {
public static void main(String args[]) {
System.out.println("素数有:");
for (int i = 101; i < 200; i++) {
boolean isPrime = true;
for (int j = 2; j < i; j++) {
if (i % j == 0) {
isPrime = false;
}
}
if (isPrime) {
System.out.println(i);
}
}
}
}
5-6 下列程序能否编译通过,如果可以,输出是什么;如果编译错误,请修正。
int x = 2;
switch (x) {
case 1:
System.out.println("One");
break;
case 2:
System.out.println("Two");
case 3:
System.out.println("Three");
break;
default:
System.out.println("end");
}
编译成功
输出:
Two
Three
5-7 下列程序能否编译通过,如果可以,输出是什么;如果编译错误,请修正。
int x = 0, y = 0;
outer: for (x = 1; x < 5; x++) {
inner: for (y = 1; y < 5; y++) {
System.out.println("x=" + x + ";y=" + y);
if (x % 2 == 0)
continue outer;
}
}
编译成功
输出:
x=3;y=1
x=3;y=2
x=3;y=3
x=3;y=4
x=4;y=1
5-8下列程序能否编译通过,如果可以,请判断输出的结果;如果编译错误,请修正。
int i=5;
if(i<10)
System.out.println("i");
System.out.println("<");
System.out.println("10");
else
System.out.println("i>=10");
编译错误,修改如下:
int i = 5;
if (i < 10) {
System.out.println("i");
System.out.println("<");
System.out.println("10");
} else
System.out.println("i>=10");
5-9 下列程序能否编译通过,如果可以,请判断输出的结果;如果编译错误,请修正。
int i, j, k;
for (i = 0; i < 3; i++) {
for (j = 1; j < 4; j++) {
for (k = 2; k < 5; k++) {
if ((i == j) && (j == k))
System.out.println(i);
}
}
}
编译成功,输出:
2
5-10 下列程序能否编译通过,如果可以,请判断输出的结果;如果编译错误,请修正。
int i = 4;
for (int i = 3; i < 3; i++) {
System.out.println(i);
}
编译错误,修改为:
int i = 4;
for (int i1 = 3; i1 < 3; i1++) {
System.out.println(i1);
}