JAVA题型拔高

B题
第一行输入一个整形数字n,接下来一共有n行,每一行都依据上一行的内容写出,上一行的0变成01,上一行的1变成10
比如输入:
4
1 1
2 1
2 2
4 5
要求输出
0
0
1
1
意思是:因为输入了4,则接下来有
0
0 1
0 1 1 0
0 1 1 0 1 0 0 1
然后看输入的接下来几行,第一个要求输出第一行第一个数字,即0,第二个要求输出第二行第一个数字,即0,第三个要求输出第二行第二个,即1,第四个要求输出第四行第五个数字, 即1;


代码实现:

package jichu1;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
import java.util.Set;

@SuppressWarnings("all")
public class Test {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		System.out.println("请输入你想输入的行数:");
		int row = input.nextInt();

		// 定义一个二维数组
		int arr[][] = new int[row][];
		for (int i = 0; i < row; i++) {
			if (i == 0) {
				arr[0] = new int[1];
				// 给二维数组赋值:第一个一维数组的长度是1.并且赋值为0.
				arr[0][0] = 0;
				// 测试代码
//				System.out.print("*");
			} else {
				for (int j = 1; j <= 2 << (i - 1); j++) {
					// 按位运算给每个一维数组赋值(因为每个一维数组的长度不等,且以位增加)
					arr[i] = new int[j];
					// 测试代码
//					System.out.print("*");
				}
				// 然后遍历该数组的第i-1行数据,根据第i-1行数据,给第i行数据赋值
				for (int j2 = 0; j2 < arr[i - 1].length; j2++) {
					// 判断第i-1的j2位置是为偶数还是奇数
					// m,n奇偶数是根据一维数组的包含的元素个数来进行判断的。
					int m = j2 * 2;// m代奇数
					int n = j2 * 2 + 1;// n代表偶数
					// 偶数的情况个数来判断的
					if ((j2 + 1) % 2 == 0) {
						/*
						 * 如果该偶数位置的值为0,那么第i行2*j2的位置就为0; 如果偶数位置的值为1,那么第i行2*j2的位置就为1;
						 */
						if (arr[i - 1][j2] == 0) {
							arr[i][m] = 0;
							arr[i][n] = 1;
						} else if (arr[i - 1][j2] == 1) {
							arr[i][m] = 1;
							arr[i][n] = 0;
						}

					} else {// 奇数的情况
						/*
						 * 如果该奇数位置的值为0,那么第i行2*j2-1的位置就为0; 如果该奇数位置的值为1,那么第i行2*j2-1的位置就为1;
						 */
						if (arr[i - 1][j2] == 0) {
							arr[i][n] = 1;
							arr[i][m] = 0;
						} else if (arr[i - 1][j2] == 1) {
							arr[i][n] = 0;
							arr[i][m] = 1;
						}
					}
				}
			}
			// 测试代码
//			System.out.println();

		}
		// 打印输出二维数组
		for (int i = 0; i < arr.length; i++) {
			for (int j = 0; j < arr[i].length; j++) {
				System.out.print(arr[i][j] + " ");
			}
			System.out.println();
		}
		Map<Integer, Integer> map = new HashMap<Integer, Integer>();

		System.out.println("请输入你想要查询的行数和列数");
		int hang = input.nextInt();
		int lie = input.nextInt();

		int hang1 = input.nextInt();
		int lie1 = input.nextInt();

		int hang2 = input.nextInt();
		int lie2 = input.nextInt();

		int hang3 = input.nextInt();
		int lie3 = input.nextInt();

		map.put(hang, lie);
		map.put(hang1, lie1);
		map.put(hang2, lie2);
		map.put(hang3, lie3);

		// 1.使用map集合中的entrySet方法,把Map集合中多个Entry对象取出来,存储到一个Set集合中
		Set<Entry<Integer, Integer>> set = map.entrySet();
		// 2.遍历Set集合,获取每一个Entry对象
		// 使用迭代器遍历Set集合
		Iterator<Entry<Integer, Integer>> iterator = set.iterator();
		while (iterator.hasNext()) {
			// 先获取每一个连接key和value关系的对象
			Entry<Integer, Integer> entry = iterator.next();
			// 获取键
			Integer hangshu = entry.getKey();
			// 获取值
			Integer lieshu = entry.getValue();

			// 对输入的数值进行判断
			int var = 0;
			if (hangshu > row) {
				System.out.println("抱歉,你需要查询的行数超过了你输入的行数");
			} else {
				int length = arr[hangshu].length;
				if (lieshu > length) {
					System.out.println("抱歉,你需要查询的列数超过了范围");
				} else {
					var = arr[hangshu][lieshu];
				}
			}
			System.out.println("你查询的值为:" + var);
		}

	}
}

运行截图
在这里插入图片描述
在这里插入图片描述

大华笔试题目java题型一般会涉及Java的基础知识、面向对象编程、流程控制、异常处理等内容。以下是一个可能的题目: 题目:编写一个Java程序,实现一个简单的计算器,能够进行加法、减法、乘法、除法运算。计算器接收用户输入的两个数和运算符,然后输出计算结果。 解答: ```java import java.util.Scanner; public class Calculator { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入第一个数:"); double num1 = scanner.nextDouble(); System.out.println("请输入第二个数:"); double num2 = scanner.nextDouble(); System.out.println("请输入运算符(+、-、*、/):"); String operator = scanner.next(); double result = 0; switch(operator) { case "+": result = num1 + num2; break; case "-": result = num1 - num2; break; case "*": result = num1 * num2; break; case "/": if(num2 != 0) { result = num1 / num2; } else { System.out.println("除数不能为零!"); return; // 结束程序 } break; default: System.out.println("输入的运算符不合法!"); return; // 结束程序 } System.out.println("计算结果为:" + result); } } ``` 上述程序通过Scanner类获取用户输入的数和运算符,并使用switch语句根据运算符进行相应的计算,最后输出结果。当用户输入的除数为零时,程序会提示除数不能为零,并结束程序。 希望这个例子能够帮助你更好地理解大华笔试题目中的Java题型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值