所以我认为我在这方面投入了太多时间,但这是一个有趣的挑战,所以我想让我们尝试一下.

我向该解决方案推荐了一个代码版本,尽管它可能不是最干净的,因为我向后处理整个问题,但它的效果很好.

这是我可以在线尝试的解决方案(请注意,它没有经过严格优化,并且绝不是好的Java代码.老实说,这是一种快速而肮脏的实现):

因此,想法很简单:我们首先为矩阵中的每个位置计算正确的值,然后将其打印出来.

让我们再详细一点:

我们首先为要打印的值创建矩阵:

给定大小n,这是

int[][] values = new int[n][n];

现在我们要计算每个点的正确值.我选择以“错误的方式”解决问题,而不是从第一点开始,而是从螺旋的中心开始.

基本上想象一下n = 3的矩阵:

[1][2][3]

[8][9][4]

[7][6][5]

而不是从1开始,我只是从9开始.这样做的原因是,实际上计算从一个点螺旋成一个点到螺旋成一个点的位置实际上更容易.

因此,从这个中心点开始,我们以圆形的方式从那里螺旋上升.对于矩阵

[1][2]

[4][3]

这意味着我们访问4-> 3-> 2-> 1.然后将正确的值保存在矩阵中.

我的方法唯一的问题是,对于尺寸不均匀(3、5、7等)的矩阵,我仍然以螺旋顺序访问点,对于3×3,访问顺序例如9-> 4-> 3-> 2-> 1-> 8-> 7-> 6->如图5所示,我完全画在Paint中:

这导致结果矩阵如下:

[5][6][7]

[4][9][8]

[3][2][1]

尽管可以简单地解决此小问题,但是只要将矩阵n%2!= 0再次反转打印一次即可.

希望我可以提供其他解决方法的帮助.

java 计算小费_java-以某些形状显示数字相关推荐

  1. java 计算协方差_Java的深度:通过协方差暴露的API泄漏

    java 计算协方差 Java有时可能非常棘手,特别是在API设计中. 让我们看一个非常有趣的展示柜. jOOQ强烈地将API与实现分开. 所有API都在org.jooq包中,并且是公共的. 大多数实 ...

  2. [转载] java 计算协方差_Java的深度:通过协方差暴露的API泄漏

    参考链接: 关于Java中null的有趣事实 java 计算协方差 Java有时可能非常棘手,特别是在API设计中. 让我们看一个非常有趣的展示柜. jOOQ强烈地将API与实现分开. 所有API都在 ...

  3. java 计算时差_java计算时间差的几种方法

    用JAVA计算日期,时间差的几种方法 1. 手工计算 2.采用一个三方的jar包(Joda time library) 3. 利用TimeUnit类(java.util.concurrent 包中) ...

  4. java计算时间差_java中计算两个时间差

    java计算时间差及比较时间大小 比如:现在是2004-03-26 13:31:40 过去是:2004-01-02 11:30:24 我现在要获得两个日期差,差的形式为:XX天XX小时XX分XX秒 方 ...

  5. java 计算周_java – Joda时间周计算推理

    下面的代码演示了星期计算的有问题的joda-time实现.这种行为不是错误,而是设计决策 Joda-Time uses the ISO standard Monday to Sunday week.( ...

  6. java计算下周一_java – 如何计算下周?

    从来没有依赖于毫秒的算术,有太多的规则和陷阱使它成为任何价值(即使在一小段时间内),而是使用专用库,如Java 8的Time API,JodaTime甚至Calendar Java 8 LocalDa ...

  7. java jtextarea 滚动条_java 在JTextArea中显示 滚动条

    我的代码为什么不显示垂直滚动条是那里错了么如果有错求高手修改importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;importjava ...

  8. java 计算反码_java基础知识-原码、反码、补码、运算符

    一.原码.反码.补码 原码 一个数转化成二进制. 用最高位来表示正负,最高位为0表示正数,最高位为1表示负数. 例如: short i=5: 因为在java里short占2个字节转化成二进制就是 00 ...

  9. java计算距离_java实现计算地理坐标之间的距离

    java实现计算两经纬度点之间的距离,直接上代码,具体解释请参考注释 package com.jttx.poi.utils; import com.jttx.poi.entity.point; /** ...

最新文章

  1. CCNA 之 三 TCP/IP 及 子网划分
  2. linux中断处理体系结构分析(一),Linux中断处理体系结构分析(二)
  3. 微信小程序开发学习笔记002--微信小程序框架解密
  4. 截取指定字符前_Excel字符函数(1):利用3个函数提取邮箱中的域名
  5. [投资笔记]2016-11-25日
  6. 如何在IDEA中操作数据库——导入驱动包
  7. SAN 光纤交换机配置远距离级联(EF)操作
  8. 6岁女孩出口之乎者也 用《论语》典故批评妈妈
  9. ubuntu nginx 安装和启动和自启动
  10. 零基础自学python计划_「经验分享」python零基础学习规划与建议!
  11. python解椭圆方程的例题_椭圆标准方程典型例题及练习题
  12. flyway版本号_使用flyway作为数据库版本工具
  13. 微博短链接生成 php,新浪微博API生成短链接
  14. 设计模式的六大设计原则
  15. 投资入门第 3 步:技术分析法(常用技术分析)
  16. 一台电脑上idea+webstorm使用nginx配置前后端分离
  17. 宜信支持多渠道前端方案介绍
  18. html 表格自动编号,Word中如何给表格设置自动编号
  19. 《道德经》第二十六章
  20. 图像特征提取与匹配方法总结

热门文章

  1. spring容器的设值注入和构造注入
  2. jQuery |添加标签元素/内容
  3. Windows删除文件时显示找不到该项目 1
  4. LINQ Order by 排序
  5. springmvc的执行流程详解
  6. Hibernate随机获取指定范围内的指定条目的记录
  7. dhcp服务配置文件/etc/dhcpd.conf详解
  8. [摘录]软件版本GA,RC,alpha,beta,Build 含义
  9. 超有用的 java面试题
  10. win7+计算机+桌面图标不见了怎么办,win7电脑系统桌面图标不见了怎么办