已知一个 的矩形填数结果如下: 那么,对于任意一个 的矩形,规则为,先填好对角线,再往右上填好,再到最左下,再往右上,再左下……,每个数字出现一次,且不大于边长的乘积,需把数字不重不漏的填入矩形,能否快速输出其填数结果?
区块链毕设网qklbishe.com为您提供问题的解答
已知一个 的矩形填数结果如下:
那么,对于任意一个 的矩形,规则为,先填好对角线,再往右上填好,再到最左下,再往右上,再左下……,每个数字出现一次,且不大于边长的乘积,需把数字不重不漏的填入矩形,能否快速输出其填数结果?
发现规律:从对角线位置按列遍历一个圈【用取模实现循环遍历】,下一个数总比上一个数字多m,m为行数
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); while(n-->0){ // 生成1-m的数组填充矩阵 int m = scanner.nextInt(); int arr[][] = new int[m][m]; for(int i=0;i<m;i++){ arr[i][i] = i+1; } for(int i=0;i<m;i++){ int temp = arr[i][i]; for(int j=(i+1)%m;j!=i;j=(j+1)%m){ temp+=m; arr[i][j] = temp; } } for(int i=0;i<m;i++){ for(int j=0;j<m;j++){ if(j==m-1){ System.out.println(arr[i][j]); }else{ System.out.print(arr[i][j]+" "); } } } } } }
49:46
以上就是关于问题已知一个 的矩形填数结果如下:
那么,对于任意一个 的矩形,规则为,先填好对角线,再往右上填好,再到最左下,再往右上,再左下……,每个数字出现一次,且不大于边长的乘积,需把数字不重不漏的填入矩形,能否快速输出其填数结果?的答案
欢迎关注区块链毕设网-
web3一级市场套利打新赚钱空投教程
区块链NFT链游项目方科学家脚本开发培训