Java/java 程序设计 第二章课后习题详解;1.今天是星期二,100天后是星期几;2.编写一个能读取圆柱体的半径和长度并计算体积和表面积;3.输出数字直角三角形;4。输出直角杨辉三角形
Java/java 程序设计 第二章课后习题详解;
- 1.如果今天是星期二,编程实现100天后是星期几;
- 2.难度加大,编程实现求现在计算机100天后是星期几?
- 3.编写一个能从键盘读取圆柱体的半径和长度并计算体积和表面积;
- 4.输出数字直角三角形
- 5.指定输出层数直角三角形的杨辉三角;
1.如果今天是星期二,编程实现100天后是星期几;
分析问题,星期数是以 7 为周期,只要知道 N 除 7 余数为 多少 加上当前星期二即可;
//核心代码片段:
int nowday = 2;
int day = 100 % 7;
switch (day) {
case 0:
System.out.println("今天星期二");
break;
case 1:
System.out.println("今天星期三");
break;
case 2:
System.out.println("今天星期四");
break;
case 3:
System.out.println("今天星期五");
break;
case 4:
System.out.println("今天星期六");
break;
case 5:
System.out.println("今天星期日");
break;
case 6:
System.out.println("今天星期一");
break;
default:
break;
}
2.难度加大,编程实现求现在计算机100天后是星期几?
这里就需要引用到java自带的包
import java.util.Calendar;
import java.util.Date;
从而获取当前电脑的日期(当然时间也可以),下面上代码片段;
import java.util.Scanner;
import java.util.Calendar;
import java.util.Date; //Java工具包的引用;
public class Day {
public static void main(String[] args) {
String[] weekDays = { "星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" }; //设置字符串数组存放星期;
Calendar cal = Calendar.getInstance();
int nowday = cal.get(Calendar.DAY_OF_WEEK) - 1; //获取当前日期;
if (nowday < 0)
nowday = 0;
int afterday;
Scanner sc = new Scanner(System.in);
System.out.println("enter N day:"); //实现由键盘输入变化天数;
int n = sc.nextInt();
afterday = nowday + n % 7;
System.out.println(n + " days after is " + weekDays[afterday]);
}
}
运行结果如图:
由于小编是星期天码字,七天之后还是星期天,哈哈哈哈。
3.编写一个能从键盘读取圆柱体的半径和长度并计算体积和表面积;
分析需求:
1.需要键盘输入,所以要引用import.java.util.Scanner;
2.圆柱体的计算公式用java语言表达:
double area = Math.PI * 2 * radius * h + 2 * Math.PI * radius * radius;
double volume = Math.PI * radius * radius * h;
注意变量的类型要使用double型哦`
import java.util.Scanner;
public class Cylander {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("enter Cylander's r:");
double r = sc.nextDouble(); //输入圆柱体的半径r;
System.out.println("enter Cylander's h:");
double h = sc.nextDouble(); //输入圆柱体的高h;
Cyland c = new Cyland(r,h);
System.out.println("Cylander's area = " + c.area() + " volume's = " + c.volume());
} //输出面积以及体积;
}
class Cyland {
double radius;
double h;
public Cyland(double r, double h) {
this.radius = r; //构造体
this.h = h;
}
double area() { //求面积
double area = Math.PI * 2 * radius * h + 2 * Math.PI * radius * radius;
return area;
}
double volume() { //求体积
double volume = Math.PI * radius * radius * h;
return volume;
}
}
运行结果如图:
4.输出数字直角三角形
1
1 2
1 2 3
1 2 3 4
先观察规律:
不难看出利用两个for循环即可
import java.util.Scanner;
public class numberTriangle {
public static void main(String[] args) {
Scanner myScanner = new Scanner(System.in);
int n = 1;
System.out.println("please input Triangle's layers:");
int layer = myScanner.nextInt(); //获取三角形的层数;
System.out.println("==============="); //分隔符;
for(int i = 1;i <= layer; i++){ //外循环层数
for(int j = 1;j <= i; j++,n++){ //内循环 输出 1 至 每一层对应层数;
System.out.print(j);
}
System.out.println(" "); //每一次外循环结束换行;
}
}
}
运行结果:
5.指定输出层数直角三角形的杨辉三角;
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
不难看出其三角形蕴含规律为:
1.第一列均为 1 ;
2.每一行的最后均为 1 ;
3.第三行开始中间的数字等于肩上两数字之和;
具体代码实现请看代码区。
import java.util.Scanner;
public class yhtriangle {
public static void main(String[] args) {
Scanner myScanner = new Scanner(System.in);
System.out.println("please input yang hui triangle's rows:");
int rows = myScanner.nextInt();
int[][] yh =new int [rows][]; //定义一个二维数组 列单位可先不输入
for(int i = 0;i < yh.length;i++) {
yh[i] = new int[i + 1]; //输出规律 列时 利用 此语句 => 数组名[j] = new 数据类型[与外层循环的规律];
for(int j = 0;j < yh[i].length;j++) {
if(j == 0 || j == yh[i].length - 1) { //第一列 和 每一行最后一个 都为 1
yh[i][j] = 1;
}
else {
yh[i][j] = yh[i - 1][j - 1] + yh[i - 1][j];
} //等于肩上两数之和
}
}
System.out.println("============");
for(int i = 0;i < yh.length;i++) { //注意 数组名.length = 行 ; 数组名[i].length = 列 ;
for(int j =0;j < yh[i].length;j++) {
System.out.print(yh[i][j] + " ");
}
System.out.println();
}
}
}
运行结果如图:
CSDN-Ada助手: 不知道 Python入门 技能树是否可以帮到你:https://edu.csdn.net/skill/python?utm_source=AI_act_python
2301_79074623: 你use 你要查询的数据库没
2301_77580061: 为什么显示目录查找失败
尘127: 继续更啊!生产队的驴都不带这么歇
尘127: 亏我还进来给你点赞