通过提供元素数组作为输入形成半金字塔

问题描述 投票:-3回答:2

给定金字塔中的元素数量,是否有任何公式可用来找到金字塔中形成的行数?输入:

{11,12,13,14,15,16,17,18,19,20}

输出:

11
12 15 
13 16 18
14 17 19 20

(半金字塔格式)

java c
2个回答
-1
投票

实际上与三角数的公式相同。

T = n(n + 1)/ 2

您必须找到n而不是T。您只需在代码中实现此简单函数。以下是一个简单的示例,您只需要传递数组的长度即可。

public int getRowCount(int length){
   return Math.sqrt(2 * length + 0.25) - 0.5;
}

-1
投票
import java.util.*;
public class Hello {

    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        String s=sc.next();
        String[] c=s.split(",");
        int k;
        int row=(int)(Math.sqrt(2*c.length+0.25) - 0.5);
        for(int i=0;i<row;i++)
        {
            k=i;
            for(int j=0;j<=i;j++)
            {
                System.out.print(c[k]+" ");
                k=k+(row-1)-j;
            }
            System.out.println();
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.