![java数组打印金字塔数列:如何高效生成[1,1,2,1,2,3,…1,2,…n]数组?](https://img.php.cn/upload/article/001/246/273/174014605959388.jpg)
Java实现金字塔数列数组
本文探讨如何用Java高效生成[1, 1, 2, 1, 2, 3, ..., 1, 2, ..., n]这样的金字塔数列数组。 给定整数n,目标是创建一个长度为n(n+1)/2的数组,包含该数列。例如,输入3,期望输出[1, 1, 2, 1, 2, 3]。
问题分析及错误代码:
原代码中的循环逻辑存在缺陷,未能正确生成金字塔数列。其错误在于循环内 ser[i]=j; 语句,该语句导致数组元素重复赋值,而非按预期顺序填充。
立即学习“Java免费学习笔记(深入)”;
高效修正代码:
以下代码提供了一种高效的解决方案:
<code class="java">public static int[] arithSeries(int n) {
int resultLength = n * (n + 1) / 2;
int[] result = new int[resultLength];
int index = 0;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= i; j++) {
result[index++] = j;
}
}
return result;
}</code>此代码使用嵌套循环,外层循环控制行数,内层循环控制每行元素的值。 index 变量作为数组索引,确保元素按顺序填充。 该方法避免了原代码中的重复赋值问题,并以更清晰、高效的方式生成了金字塔数列数组。
此修正代码简洁高效地解决了问题,正确地生成了期望的金字塔数列数组。
以上就是Java数组打印金字塔数列:如何高效生成[1,1,2,1,2,3,…1,2,…n]数组?的详细内容,更多请关注php中文网其它相关文章!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号