当前位置: 首页 > 面试题库 >

Java算法使金字塔成直角

鄂和璧
2023-03-14
问题内容

__1

_1 2 1
___1 2 3 2 1
__1 2 3 4 3 2 1
__1 2 3 4 5 4 3 2 1
1 2 3 4 4 4 4 4 3 2 1
1 2 3 3 3 3 3 3 3 3 3 2 1
__1 2 2 2 2 2 2 2 2 2 2 2 2 2 1
_1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

我想使用Java创建此金字塔吗?有什么建议吗?


问题答案:

这将达到目的。您可以将数字5更改为5以外的其他数字。1,2,3,..,6,8

public static void main(String[] args) {


    List<String> list = new LinkedList<String>();

    for(int i = 5; i > 0; i-- ){
        wrapWithNumber(list, i);
    }


    for (String string : editListToBeInTriangleShape(list)) {
        System.out.println(string);
    };
}

/**
      * Wrap the number strings in the llist with a perticular number.
 * @param list list of Strings
 * @param ba number which need to wrapp the list with.
 */
private void wrapWithNumber(List<String> list, final int ba) {

    list.add(0, String.format("%d",ba));

    for (int i = 1; i < list.size(); i++) {
        String newformat = "%1$d " + list.get(i) + " %1$d";
        list.remove(list.get(i));
        list.add(i,String.format(newformat, ba));
    }

    String lastFormat = "%1$d";
    for(int i = 0; i < 2 * list.size();i++){
        lastFormat += " %1$d";
    }

    if(list.size() != 1) {
        list.add(String.format(lastFormat, ba));
    }
}

/**
 * Arrage the Strings in the list in triangular manner.
 * @param list list of Strings.
 */
private List<String> editListToBeInTriangleShape(final List<String> list) {

    final List<String> returnList = new LinkedList<String>();

    for (int i = list.size(); i > 0; i--) {
        String s = list.get(list.size()-i);
        int possition = list.size()*2 + s.length()/2;
        returnList.add(String.format("%"+possition+"s", s));
    }

    return returnList;
}

放出这个:

                 1
               1 2 1
             1 2 3 2 1
           1 2 3 4 3 2 1
         1 2 3 4 5 4 3 2 1
       1 2 3 4 4 4 4 4 3 2 1
     1 2 3 3 3 3 3 3 3 3 3 2 1
   1 2 2 2 2 2 2 2 2 2 2 2 2 2 1
 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1


 类似资料:
  • 我想做这个图案: 两个for循环都在如下所示的for循环中:

  • 主要内容:金字塔向上,金字塔向下,均值移位滤镜金字塔是对图像的一种操作, 使用特定的平滑过滤器(例如高斯,拉普拉斯算子)对输入图像进行初始平滑,然后对平滑后的图像进行二次采样。 这个过程重复多次。 在金字塔操作期间,图像的平滑度增加并且分辨率(尺寸)减小。 金字塔向上 在金字塔上,图像最初被上采样然后模糊。可以使用类的方法对图像执行金字塔向上操作。 以下是这种方法的语法 - 该方法接受以下参数 - src - 表示此操作的源(输入图像)的对象

  • 目标 在这一章当中, 我们将学习图像金字塔 我们将使用图像金字塔来创建一个新的水果,“Orapple” <!--

  • 目标 在本章中, 我们将学习图像金字塔 我们将使用图像金字塔创建一个新的水果“Orapple” 我们将看到以下功能:cv.pyrUp(),cv.pyrDown() 理论 通常,我们过去使用的是恒定大小的图像。但是在某些情况下,我们需要使用不同分辨率的(相同)图像。例如,当在图像中搜索某些东西(例如人脸)时,我们不确定对象将以多大的尺寸显示在图像中。在这种情况下,我们将需要创建一组具有不同分辨率的相

  • 问题内容: 我正在尝试从我的Pyramid应用程序流式传输服务器发送的事件,但是我无法从我的角度弄清楚如何流式传输响应正文。这是我正在使用的测试视图(它完全不实现SSE,仅用于计算流传输部分): 这产生 我尝试了一下,至少不会出错,但是它不会流式传输响应- 等待生成器完成后才将响应返回到我的浏览器。 我认识到,这可以简单地为每个请求返回一个事件,并允许客户端在每个事件后重新连接,但是我更喜欢通过从

  • 我试图从我的金字塔应用程序中流式传输服务器发送的事件,但是我不知道如何从我的视图中流式传输响应主体。这是我正在使用的测试视图(它完全没有实现SSE,只是为了计算流媒体部分): 这会产生 ,这至少不会出错,但它不会流式传输响应-它会等到生成器完成后才将响应返回到我的浏览器。 我知道这可以简单地为每个请求返回一个事件,并允许客户端在每个事件后重新连接,但我更喜欢通过从单个请求流式传输多个事件来保持服务