You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java实现n×n矩阵对角线填充:不用abs方法仅用循环可行吗?

不用abs方法实现n×n对角线填充矩阵

没问题,完全可以只用循环+基础条件判断实现需求,核心是通过比较行、列索引的大小,直接计算出替代abs的非负差值:

对于矩阵中任意位置(i, j),其对应的值就是行号i和列号j之间的“距离”——当i >= j时取i - j,当i < j时取j - i,这和abs(i-j)的结果完全一致,但不需要调用abs方法。

以下是Python实现示例:

n = int(input("输入n(≤100):"))
matrix = []
# 遍历每一行
for i in range(n):
    current_row = []
    # 遍历当前行的每一列
    for j in range(n):
        # 条件判断计算非负差值
        if i >= j:
            current_val = i - j
        else:
            current_val = j - i
        current_row.append(current_val)
    matrix.append(current_row)

# 打印验证结果
for row in matrix:
    print(row)

这段代码全程只用了嵌套循环和if-else条件判断,完全符合“仅用循环、不使用abs方法”的要求。无论n是1到100之间的哪个整数,都能生成符合规则的矩阵:主对角线(i=j)值为0,紧邻主对角线的两条对角线值为1,再外层的两条对角线值为2,以此类推。

内容的提问来源于stack exchange,提问作者Evelyn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 07:35:23