|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
【问题描述】用户输入正整数n(1<=n<=9),输出n*n的特定矩阵,矩阵元素为小于等于n的正整数,其排列规律如下:
例如n=5,输出矩阵为:(行元素间隔1个空格,行间无空行)(请仔细分析矩阵元素和行号列号间的关系)
1 1 1 1 1
1 2 2 2 2
1 2 3 3 3
1 2 3 4 4
1 2 3 4 5
【输入形式】一个正整数, 值在[1,9]区间
【输出形式】n*n的特定矩阵, 其排列规律见输出示例
【样例输入】3
【样例输出】
1 1 1
1 2 2
1 2 3
请问这个题有简单的方法吗
这个问题实际上是要求构建一个特殊的矩阵,矩阵的大小为n*n,矩阵元素为小于等于n的正整数,规则是行的每个元素都不大于其列数。从矩阵规律来看,矩阵的第i行的第j列的元素值等于min(i+1, j)。我们可以根据这个规则,用Python的双层循环来构造这个矩阵。以下是一个简单的Python实现:
- def print_matrix(n):
- for i in range(n):
- row = []
- for j in range(n):
- row.append(str(min(i+1, j+1)))
- print(' '.join(row))
- print_matrix(3) # 输入样例
复制代码
运行这个程序并输入3,你将得到如下输出:
这个程序的工作方式是,对于每个i,j位置,计算出最小的值,并将其添加到该行的列表中。完成一行后,使用空格将其连接起来并打印出来。
|
|