package cn.javageiyegun.demo04;
public class HomeWork01 {
public static void main(String[] args) {
//需求:某人有100,000元,每经过一次路口,需要缴费,规则如下:
//1)当现金>50000时,每次交5%
//当现金<=50000时,每次交1000 [隐含另一个条件注意]
//编程计算该人可以经过多少次路口,要求:使用while+break方式完成
//思路分析:
//1.定义一个变量 double money 保存现金
//2.while循环
//2.1 当现金>50000时,每次交5% --> money = money - money*0.05
//2.2 当现金<=50000时,每次交1000 && money > 1000 --> money = money - 1000;
//while + break[money < 1000],使用一个变量count来保存通过的路口
//实现
double money = 100000;
int count = 0;
while(true){
if (money > 50000){
money = money - money*0.05; // money = money * 0.95;
count++;
} else if (money >=1000) { // --->if (money <= 50000 && money >1000)
money = money - 1000;
count++;
} else { //钱不够 if (money < 1000)
System.out.println(money);
break;
}
}
System.out.println("经过" + count);
}
}
package cn.javageiyegun.demo04;
import java.util.Scanner;
public class HomeWork02 {
public static void main(String[] args) {
//2.实现判断一个整数,属于哪个范围:大于0 小于0 等于0
//思路分析:
//1.创建Scanner对象来接收用户输入
//定义一个变量 int num;
//用if来判断[三种情况]
//实现
Scanner myscanner = new Scanner(System.in);
System.out.println("请输入一个整数:");
int num = myscanner.nextInt();
if (num > 0){
System.out.println("属于大于0的范围");
} else if (num < 0) {
System.out.println("属于小于0的范围");
} else {
System.out.println("属于等于0的范围");
}
}
}
package cn.javageiyegun.demo04;
import java.util.Scanner;
public class HomeWork03 {
public static void main(String[] args) {
//判断一个年份是否为闰年
//思路分析:
//1.创建一个Scanner来接收用户输入
//2.定义一个变量 int years ;来保存年份
//3.判断闰年有两种方法(1)年份能被4整除,但不能被100整除;(2)能被400整除
//4.if来判断
//实现
Scanner myscanner = new Scanner(System.in);
System.out.println("请输入一个年份: ");
int years = myscanner.nextInt();
if ((years % 4 == 0 && years % 100 != 0) || years % 400 == 0){
System.out.println(years + "是闰年");
} else {
System.out.println(years + "不是闰年");
}
}
}
package cn.javageiyegun.demo04;
public class HomeWork04 {
public static void main(String[] args) {
//判断一个整数是否是水仙花数,所谓水仙花数是指一个3位数,其各个位上数字立方和等于其本身
//例如: 153 = 1*1*1 + 3*3*3 + 5*5*5;
//思路分析:
/*
1.int n = 153;
2.先得到n的百位,十位,个位上的数,使用if判断他们的立方和是否相等
3.n的百位 = n / 100
4.n的十位 = n % 100 / 10
5.n的个位 = n % 10
6.使用if判断
*/
int n = 154;
int n1 = n / 100;
int n2 = n % 100 / 10;
int n3 = n % 10;
if (n1 * n1 * n1 + n2 * n2 * n2 + n3 * n3 * n3 == n){
System.out.println(n + "是水仙花数");
} else {
System.out.println(n + "不是水仙花数");
}
}
}
package cn.javageiyegun.demo04;
public class HomeWork05 {
public static void main(String[] args) {
//输出1-100之间的不能被5整除的数,每5个一行
/*
1.for循环输出1-100
2.定义一个变量 int count;来保存符合条件的[筛选有用的数据---> i % 5 != 0]-->每五个一行
*/
int count = 0;
for (int i = 1; i <= 100; i++) {
if (i % 5 != 0){
System.out.print(i + "\t");
count++;
}
if (count % 5 == 0) { //每满五个换行
System.out.println();
}
}
}
}
package cn.javageiyegun.demo04;
public class HomeWork06 {
public static void main(String[] args) {
//输出小写的a-z以及大写的Z-A
/*
思路分析:
1.先查出a和Z的对应ASCII的值
2.for循环
*/
//实现
for (char c1 = 'a'; c1 <= 'z';c1++){
System.out.print(c1 + " ");
}
System.out.println();
for (char c2 = 'Z';c2 >= 'A';c2--){
System.out.print(c2 + " ");
}
}
}
package cn.javageiyegun.demo04;
public class HomeWork07 {
public static void main(String[] args) {
//求出1-1/2+1/3-1/4....1/100
/*
思路分析:
1.1-1/2+1/3-1/4....1/100 = (1/1)-(1/2)+(1/3)-(1/4)...1/100
2.从上面的分析我们可以看到
(1)一共一百个数 分子为1 ,分母从1-100
(2)当分母为奇数时为+号 , 当分母为偶数时为-号
3.我们可以使用for循环+判断即可完成
4.把结果存放再 double num
5.这里有一个隐藏的陷阱,要把 公式分子 1 写出 1.0 才能得到精确的小数
*/
// 实现
// double num1 = 0; //存放偶数
// double num2 = 0; //存放奇数
double num = 0;
for (int i = 1; i <= 100; i++){
if (i % 2 == 0){ //分母偶数
num = num - 1.0 / i; //num1 = num1 - 1.0 / i;
} else { //分母奇数
num = num + 1.0 / i; //num2 = num2 + 1.0 / i;
}
}
System.out.println(num);
}
}
package cn.javageiyegun.demo04;
public class HomeWork08 {
public static void main(String[] args) {
//求1+(1+2)+(1+2+3)+(1+2+3+4)+...+(1+2+3+..+100)
//思路分析
/*
1.一共有100项相加
2.每一项的数字再逐渐增加
3.好像一个双层循环
i 可以表示是第几项,同时也是当前项的最后一个数
4.使用sum进行累计即可
*/
int sum1 = 0;
for (int i = 1; i <= 100; i++) {
for (int j = 1;j <= i;j++){
sum1 = sum1 + j;
}
}
System.out.println(sum1);
}
}