Java Day07

今天的例题主要运用几种循环嵌套,同时找到比较简便的实现方式

  1. 流程控制(数值比较1) {比较x y z的大小,但是是把三个数的值赋给中间值 max,然后用max来比较大小}
    定义两个整型变量x,y,从键盘初始化变量值,判断两个变量的大小,将较大的值赋
    给变量max,将max输出,注意输入使用Scanner输入

    1. 需要使用if分支

    2. 这里需要使用一个临时变量max

      int x = 0;
      int y = 0;
      int z = 0;
      int max = 0; 这样写可以吧 我运行的是正确的
      */

import java.util.Scanner;

class HomeWork3 {
	public static void main(String[] args) {
		int x = 0;
		int y = 0;
		int max = 0;
		Scanner sc = new Scanner(System.in);
		
		System.out.println("请输入两个整数:");
		x = sc.nextInt();
		y = sc.nextInt();
		
		if (x > y) {
			max = x;
		} else {
			max = y;
		}
		
		System.out.println("Max : " + max);
	}
}
  1. 完成一个9*9乘法表
    1 * 1 = 1
    2 * 1 = 2 2 * 2 = 4
    3 * 1 = 3 3 * 2 = 6 3 * 3 = 9

    【嵌套循环】
    1. 总计9 行数据
    2. 每一行数据和当前行号一致

*/
class HomeWork6 {
	public static void main(String[] args) {
		int i = 1;
		
		// while i 循环控制总行数 ==> 9行
		while (i <= 19) {
			
			// 这里需要一个内循环来控制每一行的有多少个数据
			// 数据量 ==> 当前行号
			int j = 1;
			
			while (j <= i) {
				System.out.print(j + "*" + i + "=" + (i * j) + " ");
				j += 1;
			}
			System.out.println();
			
			i += 1;
			
			
		}
	}
}

/*
7. 将一个正整数进行分解质因数操作 例如: 输入90 结果 233*5
质因数 有且被1 和 本身整除
2 3 5 7 11 13 17 19 23

90 ==> 2 * 3 * 3 * 5
15 ==> 3 * 5
120 == > 2 * 2 * 2 * 3 * 5

【问题】终止条件在哪里?
	1. 循环变量 == 被操作数
	2. 被操作数 ==> 1

120 ÷ 2 
	==> 60 ÷ 2
	==> 30 ÷ 2
	==> 15 ÷ 2错 2 += 1 ==> 3
	==> 15 ÷ 3 
	==> 5 ÷ 3 错 3 += 1 ==> 4
	==> 5 ÷ 4 错 4 += 1 ==> 5
	==> 

解出一个数字之后,需要再将循环变量保持原样 继续操作
*/
class HomeWork7 {
	public static void main(String[] args) {
		// 分解质因数从2开始
		int i = 2;
		int num = 23;
		
		// 要求i值小于等于num,继续循环
		while (i <= num) {
			if (num % i == 0) {
				System.out.println("i : " + i);
				num /= i;
				
				i -= 1;
			}
			
			i += 1;
		}
	}
}

/*
8. 使用循环完成30位以内的斐波那契数列
1 1 2 3 5 8 13 21…
斐波那契数列 前两位固定 1 1
之后的每一个数都是前两数之和

num1 = 1;
num2 = 1;

==> num1 = 1; num2 = 2;
==> num1 = 2; num2 = 3;

1. 把num2的值赋值给num1,这里需要保留num1数据,为后期相加使用
2. num1 + num2 ==> num2;
*/
class HomeWork8 {
	public static void main(String[] args) {
		double num1 = 1;
		double num2 = 1;
		int count = 1;
		
		System.out.print("1 1 ");
		
		while (count <= 48) {
			temp = num1;
			num1 = num2;
			num2 += temp;
			
			System.out.print(num2 + " ");
			count += 1;
		}
	}
}


```java
```java
```9. 利用循环完成15的阶乘
	1 * 2 * 3 * 4 *5 * 6 * 7 * 8 * 9 * 10 * 11 * 12 * 13 * 14 * 15
	
	这里需要考虑数据的延展性!!!
*/

class HomeWork9 {
	public static void main(String[] args) {
		int num = 1;
		double ret = 1;
		
		while (num <= 15) {
			ret *= num;
			num += 1;
		}
		
		System.out.println("ret : " + ret);
	}
}


/*
10. 判断一个三位数是否是水仙花数,如果是,输出YES,如果不是,输出NO
说明: 水仙花就是一个数的每个数字的立方和等于它本身的数, 例如 153就是一个水仙
花数 111+555+333=153
*/

import java.util.Scanner;

class HomeWork10 {
	public static void main(String[] args) {
		int num = 0;
		Scanner sc = new Scanner(System.in);
		
		System.out.println("请输入一个100 ~ 999之间的数据:");
		num = sc.nextInt();
		
		if (num < 100 || num > 999) {
			System.out.println("输入错误");
			System.exit(0);
		}
		
		int ones = num % 10;
		int tens = num / 10 % 10; 
		int units = num / 100;
		
		int ret = ones * ones * ones 
		+ tens * tens * tens 
		+ units * units *units;
		
		if (ret == num) {
			System.out.println(ret + " Yes");
		} else {
			System.out.println("No");
		}
	
	}
}

/*
11. 逢七过,1 ~ 100以内的所有数值展示,如果带有7或者和7有关,打印过
带有7的数
1. 个位数为7
num % 10 == 7
2. 十位数为7
num / 10 == 7
7的倍数
num % 7 == 0

&& ||

*/

class HomeWork11 {
	public static void main(String[] args) {
		int i = 1;
		
		while (i <= 100) {
			if (i % 10 == 7 || i / 10 == 7 || i % 7 == 0) {
				System.out.println("过");
			} else {
				System.out.println(i);
			}
			
			i += 1;
		}
	}
}

/*
12. 逆序数值
用户输入123456 展示654321
用户输入987654 展示456789
*/

import java.util.Scanner;

class HomeWork12 {
	public static void main(String[] args) {
		int num = 0;
		Scanner sc = new Scanner(System.in);
		
		System.out.println("请输入一个整数:");
		num = sc.nextInt();
		
		while (num > 0) {
			System.out.print(num % 10);
			num /= 10;
		}
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值