第五章作业(控制结构)
1.交路费
要求:某人有100,000元,每经过一次路口,需要交费,规则如下:
1)当现金> 50000时每次交5%
2)当现金< = 50000时每次交1000
编程计算该人可以经过多少次路口,要求:使用while + break方式完成
/**
* @author whj
* @version 1.0
*/
//某人有100,000元,每经过一次路口,需要交费,规则如下:
//1)当现金> 50000时每次交5%
//2)当现金< = 50000时每次交1000
// 编程计算该人可以经过多少次路口,要求:使用while + break方式完成
//分析:
//1.首先有2个变量存储金额的数据和路口数目;
//2.要求1;
//3.要求2;
//4.使用while break。
public class Homework01 {
public static void main(String[] args) {
double cash = 100000;//金额
int count = 0;//路口数目
while(cash >= 0) { //金额为正
if(cash > 50000){ //金额大于50000的处理
cash *= 0.95;// 扣除路口费用
count++;//路口数 + 1
System.out.println("目前通过了" + count +
"个路口,剩余金额:" + cash +".");
} else if(cash >= 1000 ) { // 金额小于50000
cash -= 1000;
count++;
System.out.println("目前通过了" + count +
"个路口,剩余金额:" + cash +".");
} else {
break;//金额不足够扣除下一次的费用,退出
}
}
System.out.println("一共通过了" + count +
"个路口,剩余金额:" + cash +".");
}
}
显示结果:
一共通过了62个路口,剩余金额:767.4979115529641.
2.实现判断-一个整数,属于哪个范围:大于0;小于0;等于0
/**
* @author whj
* @version 1.0
*/
//2.实现判断-一个整数,属于哪个范围:大于0;小于0;等于0
public class Homework02 {
public static void main(String[] args) {
int num = 0;
if (num > 0) {
System.out.println(num + "大于0。");
} else if (num < 0) {
System.out.println(num + "小于0。");
} else {
System.out.println(num + "等于0。");
}
}
}
3.判断一个年份是否为闰年
/**
* @author whj
* @version 1.0
*/
//3.判断一个年份是否为闰年
//分析:
//1.有一个保存年份的变量;
//2.闰年条件:能被4整除但是不能被100整除;能被400整除。
//使用双分支语句即可
public class Homework03 {
public static void main(String[] args) {
int year = 2024;
if ((year % 4 == 0 && year % 100 !=0) || year % 400 == 0) {
System.out.println(year + "是闰年。");
} else {
System.out.println(year + "不是闰年。");
}
}
}
4.判断一个整数是否是水仙花数,所谓水仙花数是指一个3位数,其各个位上数字立方和等于其本身。例如:153 = 111 + 333 + 555
/**
* @author whj
* @version 1.0
*/
//4.判断一个整数是否是水仙花数,所谓水仙花数是指一个3位数,其各个位上数字立方
//和等于其本身。例如:153 = 1*1*1 + 3*3*3 + 5*5*5
//分析:
//1.首先是三位数
//2.三位数中个位数的立方和等于本身。
public class Homework04 {
public static void main(String[] args) {
int num =121;
if (num <= 999 &&num >= 100) {//三位整数
if (Math.pow(num / 100,3) + Math.pow(num % 100 / 10,3)
+ Math.pow(num % 10,3) == num) {//满足条件
System.out.println(num + "是水仙数。1");
} else {//不满足条件
System.out.println(num + "不是水仙数。2");
}
} else {//不是三位整数
System.out.println(num + "不是水仙数。3");
}
}
}
显示结果:
121不是水仙数。2
5.看看下面代码输出什么?
public class Homework05 {//什么都没有输出
public static void main(String[] args) {
int m = 0,n = 3;
if (m > 0) {
if (n > 2) {
System.out.println("OK1");
} else {
System.out.println("OK2");
}
}
}
}
6.输出1-100之间的不能被5整除的数,每5个一 行
/**
* @author whj
* @version 1.0
*/
//6.输出1-100之间的不能被5整除的数,每5个一 行Homework06.java
//分析:
//1.输出1-100;
//2.判断能否被5整除;
//3.每五个一行;
public class Homework06 {
public static void main(String[] args) {
int count = 0;//计数值
for (int i = 1;i <= 100;i++ ) {
if (i % 5 != 0) {
System.out.print(i + "\t");
count++;
if (count == 5) {
System.out.print("\n");
count = 0;
}
}
}
}
}
显示结果:
1 2 3 4 6
7 8 9 11 12
13 14 16 17 18
19 21 22 23 24
26 27 28 29 31
32 33 34 36 37
38 39 41 42 43
44 46 47 48 49
51 52 53 54 56
57 58 59 61 62
63 64 66 67 68
69 71 72 73 74
76 77 78 79 81
82 83 84 86 87
88 89 91 92 93
94 96 97 98 99
7.输出小写的a-z以及大写的Z-A
/**
* @author WHJ
* @version 1.0
*/
//7.输出小写的a-z以及大写的Z-A
//分析:
//1.输出字符a-z;
//2.输出字符A-Z;
public class Homework07 {
public static void main(String[] args) {
// char word;
for (char word = 'a'; word <= 'z';word++ ) {
System.out.print(word);
}
System.out.println("");
for (char word = 'Z'; word >= 'A';word-- ) {
System.out.print(word);
}
}
}
显示结果:
abcdefghijklmnopqrstuvwxyz
ZYXWVUTSRQPONMLKJIHGFEDCBA
8.求出1-1/2+ 1/3-1/…1/100的和
/**
* @author whj
* @version 1.0
*/
//8.求出1-1/2+ 1/3-1/....1/100的和
//分析:
//1.从分母出发输出1-100;
//2.修改符号,奇数为正,偶数为负数;
public class Homework08 {
public static void main(String[] args) {
double sum = 0.0;
for (int i = 1;i <=100;i++ ) {
if (i % 2 != 0) {
sum += 1.0 / i;
} else {
sum -= 1.0 / i;
}
}
System.out.println("和是" + sum);
}
}
显示结果:
和是0.688172179310195
9.求1+ (1+2) + (1+2+3) + (1+2+3+4) +…+(1+2+3+…+ 100)的结果
/**
* @author whj
* @version 1.0
*/
//9.求1+ (1+2) + (1+2+3) + (1+2+3+4) +...+(1+2+3+..+ 100)的结果
//分析:
//1.输出1-100
//2.每个循环中从1加到循环次数;
public class Homework09 {
public static void main(String[] args) {
int sum = 0;
for (int i = 0;i <= 100;i++ ) {
int tempSum = 0;
for (int j = 0;j <= i ;j++ ) {
tempSum += j;
}
sum += tempSum;
}
System.out.println("和是" + sum);
}
}
显示结果:
和是171700