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

给定N(N=M²)输出M×M格式排列的Java实现需求

实现完全平方数对应的顺序矩阵输出

首先明确需求:给定一个正整数n(n是某个正整数m的平方),程序需要先提示输入数字,然后输出一个m行m列的顺序排列矩阵,每个数字用空格分隔。比如输入9时输出3×3的矩阵,输入16时输出4×4的矩阵。

接下来是补全后的完整Java代码:

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n;
        int m;
        System.out.println("Enter number of team");
        n = scanner.nextInt();
        m = (int) Math.sqrt(n);
        int[][] array = new int[m][m];
        
        // 填充顺序矩阵的数值
        for(int i=0;i<m;i++){
            for(int j=0;j<m;j++){
                // 第i行第j列的数值计算:i*m是前i行的总元素数,加j+1得到当前位置的顺序值
                array[i][j] = i * m + j + 1;
            }
        }
        
        // 按格式输出矩阵
        for(int i=0;i<m;i++){
            for(int j=0;j<m;j++){
                System.out.print(array[i][j] + " ");
            }
            // 每行输出结束后换行
            System.out.println();
        }
        
        scanner.close();
    }
}

关键逻辑说明:

  • 矩阵填充:array[i][j] = i * m + j + 1是核心计算式,比如当m=3(输入n=9)时,第1行(i=0)的数值就是0×3+0+1=1,0×3+1+1=2,0×3+2+1=3,刚好对应1、2、3;第2行(i=1)则是3+1=4,3+2=5,3+3=6,完美匹配顺序排列。
  • 格式输出:外层循环控制行数,内层循环输出每行的元素,每个元素后加空格保证分隔,每行结束后换行,确保矩阵的行列结构清晰。
  • (可选优化)如果需要处理非完全平方数的输入,可以添加if(m*m !=n)的判断,提示用户输入不符合要求,但需求中已经明确n是完全平方数,所以暂时不需要这部分。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:12:02