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免费学习笔记(深入)”;
高效修正代码:
以下代码提供了一种高效的解决方案:
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; }
此代码使用嵌套循环,外层循环控制行数,内层循环控制每行元素的值。 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号