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循环

带字符串的 For 循环不起作用

视频+图文带你快速掌握Java中含break语句的双重for循环

java带标签的break语句,跳出多重嵌套循环语句

java输入数字存入数组(带字符检测)