【蓝桥杯Java真题详解】简单题练习(二)

目录

    • 猜灯谜
      • 题目描述
      • 参考代码
    • 受伤的皇后
      • 题目描述
      • 参考代码
    • 字符计数
      • 题目描述
      • 参考代码

猜灯谜

题目描述

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

A 村的元宵节灯会上有一迷题:

请猜谜 * 请猜谜 = 请边赏灯边猜

小明想,一定是每个汉字代表一个数字,不同的汉字代表不同的数字。

请你用计算机按小明的思路算一下,然后提交“请猜谜”三个字所代表的整数即可。

运行限制
最大运行时间:1s
最大运行内存: 128M

参考代码

public class Main {
 public static void main(String[] args) {
    for(int a=1;a<10;a++){//请
      for(int b=0;b<10;b++){//边
        for(int c=0;c<10;c++){//赏
          for(int d=0;d<10;d++){//灯
            for(int e=0;e<10;e++){//猜
              for(int f=0;f<10;f++){//迷
                if((a*100+e*10+f)*(a*100+e*10+f)==(a*100000+b*10000+c*1000+d*100+b*10+e)){
                  System.out.println(a*100+e*10+f);//注意每个字母所对应的数字
                }
              }
            }
          }
        }
      }
    }
 }
}

受伤的皇后

题目描述

有一个 n×n 的国际象棋棋盘(n 行 n 列的方格图),请在棋盘中摆放 n 个受伤的国际象棋皇后,要求:

任何两个皇后不在同一行。
任何两个皇后不在同一列。
如果两个皇后在同一条 45 度角的斜线上,这两个皇后之间行号的差值至少为 3 。
请问一共有多少种摆放方案。

输入描述
输入的第一行包含一个整数 n。

其中,1≤n≤10。

输出描述
输出一个整数,表示答案。

输入输出样例
示例 1
输入

4

输出

2

运行限制
最大运行时间:1s
最大运行内存: 128M

参考代码

import java.util.Scanner;

public class Main {
	static int[][] map = new int[100][100];
	static int n;
	static int sum = 0;

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		n = sc.nextInt();
		sc.close();
		dfs(0);
		System.out.println(sum);
	}

	private static void dfs(int r) {
		if (r == n) {
			sum++;
			return;
		}
		for (int i = 0; i < n; i++) {
			if (check(r, i)) {
				map[r][i] = 1;
				dfs(r + 1);
				map[r][i] = 0;
			}
		}
	}

	private static boolean check(int r, int k) {
		for (int i = 0; i < r; i++) {
			if (map[i][k] == 1) {
				return false;
			}
		}
		for (int i = r - 1, j = k - 1; i >= 0 && j >= 0; i--, j--) {
			if (map[i][j] == 1 && Math.abs(r - i) < 3) {
				return false;
			}
		}
		for (int i = r - 1, j = k + 1; i >= 0 && j < n; i--, j++) {
			if (map[i][j] == 1 && Math.abs(r - i) < 3) {
				return false;
			}
		}
		return true;
	}
}

字符计数

题目描述

给定一个单词,请计算这个单词中有多少个元音字母,多少个辅音字母。

元音字母包括 a, e, i, o, u,共五个,其他均为辅音字母。

输入描述
输入格式:

输入一行,包含一个单词,单词中只包含小写英文字母。单词中的字母个数不超过 100。

输出描述
输出两行,第一行包含一个整数,表示元音字母的数量。

第二行包含一个整数,表示辅音字母的数量。

输入输出样例
示例
输入

lanqiao

输出

4
3

运行限制
最大运行时间:1s
最大运行内存: 256M

参考代码


import java.util.Scanner;

public class Main {
	static int[] v = new int[30];
	public static void main(String[] args) {
		int a=0,b=0;
		Scanner sc=new Scanner(System.in);
		String string =sc.nextLine();
		sc.close();
		for(int i=0;i<string.length();i++) {
			v[string.charAt(i)-'a']++;
		}
		for(int i=0;i<30;i++) {
			if (v[i]!=0) {
				if(i=='a'-'a'||i=='e'-'a'||i=='i'-'a'||i=='o'-'a'||i=='u'-'a') {
					a=a+v[i];
				}
				else {
					b=b+v[i];
				}
			}
		}
		System.out.println(a);
		System.out.println(b);
	}
}

你可能感兴趣的:(蓝桥杯JavaB组真题详解,java,dfs,字符串,蓝桥杯)