蓝桥杯——字母图形

问题描述:

利用字母可以组成一些美丽的图形,下面给出了一个例子:
			ABCDEFG
			BABCDEF
			CBABCDE
			DCBABCD
			EDCBABC
这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。
输入格式:
输入一行,包含两个整数n和m,分别表示你要输出的图形的行数的列数。
输出格式:
输出n行,每个m个字符,为你的图形。
示例输入:
5 7
示例输出:
ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC
数字规模与约定:
1 <= n, m <= 26。
代码:
import java.util.Scanner;

public class Main {

	public static void main(String[] args) throws Exception {

		Scanner scanner = new Scanner(System.in);
		int n = scanner.nextInt();
		int m = scanner.nextInt();
		char[][] c = new char[n][m];
		
		//第一行
		for (int i = 0; i < m; i++) {
			c[0][i] = (char) ('A'+i);
		}
		
		//第一列
		for (int j = 0; j < n; j++) {
			c[j][0] = (char) ('A'+j);
		}
		
		//第i行j列
		for (int i = 1; i < n; i++) {
			for (int j = 1; j < m; j++) {
				c[i][j] = c[i-1][j-1]; 
			}
		}
		
		//打印输出
		for (int i = 0; i < n; i++) {
			for (int j = 0; j < m; j++) {
				System.out.print(c[i][j]);
			}
			System.out.println();
		}
	}
}
### 蓝桥杯 Python STEM A 组大赛资料与题目 #### 比赛概述 蓝桥杯 Python STEM A 组竞赛旨在考察青少年选手的信息技术素养和编程能力。该赛事不仅测试参赛者的编程技巧,还评估其解决实际问题的能力。 #### 参考资源汇总 为了帮助准备参加此类比赛的学生们更好地复习备考,可以利用一系列官方发布的练习材料以及过往试题分析文档[^1]。这些资源涵盖了不同难度级别的挑战项目,有助于考生熟悉考试模式并提升应试水平。 #### 编程环境介绍 针对初学者而言,在掌握基本语法之前可以通过图形化工具 Scratch 来培养逻辑思维习惯;而对于有一定经验的学习者,则建议直接进入 Python 实践阶段[^2]。通过这种方式逐步过渡到更复杂的算法设计当中去。 #### 具体实例展示 以某次比赛中的一道典型题目为例:假设有一场满分为 100 分的小测验,每位参与者获得的成绩均为介于 0 至 100 之间的整数值。此类型的简单数据处理任务非常适合用来检验学生对于列表操作的理解程度[^3]。 ```python scores = [random.randint(0, 100) for _ in range(30)] average_score = sum(scores)/len(scores) print(f"The average score is {average_score:.2f}") ``` 上述代码片段展示了如何随机生成一组成绩,并计算平均分作为输出结果之一。 #### 字典映射应用案例 另一个常见的应用场景涉及字符编码转换——即将字母表中的各个字母与其对应的序号建立关联关系。下面给出了一段实现这一功能的示范代码: ```python d = {} for i in range(1, 27): key_char = chr(i + ord('a') - 1) value_str = f"{i:02}" if i < 10 else str(i) d[key_char] = value_str print(d['z']) # 输出 '26' ``` 这段脚本创建了一个字典 `d` ,其中键为小写字母而值为其位置编号(不足两位时自动填充前置零),最后打印出字母 z 对应的位置字符串 "26"[^4]。 #### 解决组合优化类问题的方法论探讨 当面对诸如物品分配之类的离散数学领域内的难题时,动态规划往往能提供有效的解决方案路径。例如考虑这样一个具体场景:给定总数 N 和三种颜色球的数量限制条件下的排列方式求解。以下是基于记忆化的递归函数来枚举所有可能情况的一种方法: ```python def count_ways(n, black_max, white_max, gray_max, memo={}): if n == 0: return 1 elif (n, black_max, white_max, gray_max) not in memo: ways = 0 if black_max > 0: ways += count_ways(n-1, black_max-1, white_max, gray_max, memo) if white_max > 0 and n >= 2: ways += count_ways(n-2, black_max, white_max-1, gray_max, memo) if gray_max > 0 and n >= 3: ways += count_ways(n-3, black_max, white_max, gray_max-1, memo) memo[(n, black_max, white_max, gray_max)] = ways return memo.get((n, black_max, white_max, gray_max), 0) result = count_ways(8, 6, 3, 2) print(result) # 应输出5表示存在五种合法配置方案[^5] ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bu Sir

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值