欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Week01题目练习——Java 分支结构、循环

程序员文章站 2022-04-06 11:41:54
...

Week01作业练习

/* 
1. 表达式(立方)	
		编写程序,计算用户输入数据的立方
		
		数据类型的选择
		1. 数据当前的情况
		2. 数据的延展性,后期的计算效果
		用户输入的数据可以用int类型变量来保存
		就算结果是一个立方效果,立方之后数据量的
		增长性是非常恐怖的,所以现在double保存结果
 */
 
import java.util.Scanner;
 
class HomeWork1 {
	public static void main(String[] args) {
		int num = 0;
		Scanner sc = new Scanner(System.in);
		
		System.out.println("请输入一个整数");
		num = sc.nextInt();
		
		double ret = num * num * num;
		
		System.out.println(ret);
		
	}
}
/* 
2. 表达式(取值操作)	
        输入4个数,若第一个数第二个数相等,第三个数和第四个数的
        和与第一个数和第二个数的和相等,输出1,否则输出0
分析:
	1. scanner可以获取多个数据
	2. 条件判断叠加
	3.if else

 */
import java.util.Scanner;

class HomeWork2 {
	public static void main(String[] args) {
		/* 创建变量 */
		int num1 = 0;
		int num2 = 0;
		int num3 = 0;
		int num4 = 0;
		Scanner sc = new Scanner(System.in);
		
		/* 友好性交互 */
		System.out.println("请输入四个整数,并用空格隔开:");
		
		/* 从控制台获取数据 */
		num1 = sc.nextInt();
		num2 = sc.nextInt();
		num3 = sc.nextInt();
		num4 = sc.nextInt();
		
		/* if分支结构判断输出 */
		if (num1 == num2 && (num1 + num2 == num3 + num4)) {
			System.out.println("1");
		} else {
			System.out.println("0");
		}
		
	}
}
/*
3. 流程控制(数值比较1)	
    	定义两个整型变量x,y,从键盘初始化变量值,判断两个变量的大小,将较大的值赋
    	给变量max,将max输出,注意输入使用Scanner输入 
分析:
	1. 选哟使用if分支
	2. 这里需要使用一个临时变量max
*/
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);
	}
}
/* 
4. 流程控制(数值比较2)	
    	定义三个整型变量x,y,z,从键盘初始化变量值,判断三个变量的大小,将较大的值
    	赋给变量max,将max输出,注意输入使用Scanner输入 
 */
import java.util.Scanner;
class HomeWork4 {
	public static void main(String[] args) {
		/* 定义所需变量 */
		int x = 0;
		int y = 0;
		int z = 0;
		//作为参照数值
		int max = 0;
		Scanner sc = new Scanner(System.in);
		
		/* 友好性交互 */
		System.out.println("请输入三个整数,并用空格隔开:");
		
		/* 从控制台获取数据 */
		x = sc.nextInt();
		y = sc.nextInt();
		z = sc.nextInt();
		
		//假设最大值是 x ,max保存x的值
		max = x;
		
		//判断y的值是否大于max
		if (y > max) {
			max = y;
		}
		
		//判断z的值是否大于max
		if (z > max) {
			max = y;
		}
		System.out.println("Max : " + max);
		
	}
}
/* 
 6. 完成一个9*9乘法表
 
 分析:嵌套循环
 1. 总计9行数据
 2. 每一行数据和当前行号一致
 */

class HomeWork6 {
	public static void main(String[] args) {
		int i = 1;
		//while循环控制总行数 ===> 9行
		while (i <= 9) {
			
			//这里需要一个内循环来控制每一行有多少个数据
			//数据量 == 当前行号
			int j = 1;
			while (j <= i) {
				System.out.print(j + " * " + i + " = " + i * j + "  ");
				j += 1;
			}
			System.out.print("\n");
			i += 1;
		}
	}
}
/* 
7. 将一个正整数进行分解质因数操作 例如: 输入90 结果 2*3*3*5

分析:
	质因数:有且只能被1和本身整除,如2 3 5 7 11 13 17 19
	
	[问题]终止条件在哪里?
		1. 循环变量 == 被操作数
		2. 被操作数 ==> 1
		
	120   /2 ==>60		/2 == >  30 	/2 == > 15  /2 (错) /3== > 5 /3(错)/4(错)/5 ==> 1
 解出一个数字之后,需要将循环变量保持原样继续操作
 */

import java.util.Scanner;

class HomeWork7 {
	public static void main(String[] args) {
		int num = 20;
		int i = 2;
		
		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 11 19...
		
	斐波那契数列	
		前两位固定,之后的每个数都是前两个数之和
		数据类型考虑使用deouble类型,保证数据的延展性
	
 */

class HomeWork8 {
	public static void main(String[] args) {
		double num1 = 1;
		double num2 = 1;
		int count = 1;
		
		System.out.println("1  1");
		
		while (count <= 28) {
			double temp = num1;
			num1 = num2;
			num2 += temp;
			
			System.out.print(num2 + " ");
			count +=1;
		}
	}
}
/*
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);
	}
}
/*
100 ~~ 999 所有的水仙花数
*/
class HomeWork10 {
	public static void main(String[] args) {
		int num = 100;
		
		while (num <= 999) {
			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");
			}
			
			num += 1;
		}
	}
}
/*
10. 判断一个三位数是否是水仙花数,如果是,输出YES,如果不是,输出NO
	说明: 水仙花就是一个数的每个数字的立方和等于它本身的数, 例如 153就是一个水仙
	花数 1*1*1+5*5*5+3*3*3=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; 
        /*
        112 / 10 ==> 11
        11 % 10 ==> 1
        
        162 / 10 ==> 16
        16 % 10 ==> 6
        */
		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
			70 / 10 = 7
			75 / 10 = 7
			
			逢7过 十位为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
		
		123456 
			123456 ÷ 10 = 12345 ... 6
			123456 % 10 = 6
			123456 / 10 = 12345;
			
			12345 ÷ 10 = 1234 ... 5
            12345 % 10 = 5
            12345 / 10 = 1234
            
	整数和整数相除,没有小数,也没有省略
		5 ÷ 2 = 2 ... 1
		
		取余 1  5 % 2 = 1
		取商 2  5 / 2 = 2 

*/
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) {
           /*
           println 输出结果自带一个换行
           print 输出结果不换行
           */
			System.out.print(num % 10);
			num /= 10;
		}
    }
}
相关标签: java