Java:带循环的数组
Posted
技术标签:
【中文标题】Java:带循环的数组【英文标题】:Java: Array with loop 【发布时间】:2011-12-02 23:48:09 【问题描述】:我需要创建一个包含 100 个数字 (1-100) 的数组,然后计算它的数量(1+2+3+4+..+100 = sum)。
我不想手动将这些数字输入到数组中,100 个点会花费一些时间并且会花费更多代码。
我正在考虑使用变量 ++ 直到 100,然后计算它们的总和。不知道具体怎么写。 但重要的是它在数组中,所以我以后也可以说,“数组 55 是多少”,我可以很容易地看到它。
【问题讨论】:
【参考方案1】:方法如下:
// Create an array with room for 100 integers
int[] nums = new int[100];
// Fill it with numbers using a for-loop
for (int i = 0; i < nums.length; i++)
nums[i] = i + 1; // +1 since we want 1-100 and not 0-99
// Compute sum
int sum = 0;
for (int n : nums)
sum += n;
// Print the result (5050)
System.out.println(sum);
【讨论】:
正是我想要的,也感谢您的描述。【参考方案2】:如果您只想计算 1,2,3...n 的总和,那么您可以使用:
int sum = (n * (n + 1)) / 2;
【讨论】:
【参考方案3】:int count = 100;
int total = 0;
int[] numbers = new int[count];
for (int i=0; count>i; i++)
numbers[i] = i+1;
total += i+1;
// done
【讨论】:
【参考方案4】:我不确定您希望生成的数组采用哪种结构,但以下代码将满足我的认为您的要求:
int sum = 0;
int[] results = new int[100];
for (int i = 0; i < 100; i++)
sum += (i+1);
results[i] = sum;
为您提供循环中每个点的总和数组[1, 3, 6, 10...]
【讨论】:
这会抛出 i=100 的数组越界异常。 啊,是的。更正了循环索引和插入。【参考方案5】:填充数组:
int[] numbers = new int[100];
for (int i = 0; i < 100; i++)
numbers[i] = i+1;
然后总结一下:
int ans = 0;
for (int i = 0; i < numbers.length; i++)
ans += numbers[i];
或者简而言之,如果你想要从 1 到 n 的总和:
( n ( n +1) ) / 2
【讨论】:
【参考方案6】:如果您的数字数组始终以 1 开头并以 X 结尾,那么您可以使用以下公式: 总和 = x * (x+1) / 2
从 1 到 100,总和为 100 * 101 / 2 = 5050
【讨论】:
【参考方案7】:这实际上是公差为1的算术级数的总和。所以这是自然数和的一个特例。只需一行代码即可轻松完成。
int i = 100;
// Implement the fomrulae n*(n+1)/2
int sum = (i*(i+1))/2;
System.out.println(sum);
【讨论】:
【参考方案8】:int[] nums = 新的int[100];
int sum = 0;
// 使用for循环填充数字 for (int i = 0; i
nums[i] = i + 1;
sum += n;
System.out.println(sum);
【讨论】:
@normalocity:: 你的代码中有一个错误,因为你声明了一个由 100 个单元组成的数组并试图访问它的第 101 个单元。那么当循环到达 i=100 时会发生什么。 U 将访问 results[100],这是从 0 开始的第 101 个单元格。 int sum = 0; int[] 结果 = 新 int[100]; for (int i = 1; i 【参考方案9】:数组已声明但未初始化值,如果您想通过迭代循环插入值,此代码将起作用。
Public Class Program
public static void main(String args[])
//Array Intialization
int my[] = new int[6];
for(int i=0;i<=5;i++)
//Storing array values in array
my[i]= i;
//Printing array values
System.out.println(my[i]);
【讨论】:
请同时添加您的解决方案的简短描述。这将帮助用户了解您的解决方案为何有效。 添加了解决方案的描述.. 感谢 Mayank以上是关于Java:带循环的数组的主要内容,如果未能解决你的问题,请参考以下文章
视频+图文带你快速掌握Java中含continue语句的双重for循环