【发布时间】:2011-12-02 23:48:09
【问题描述】:
我需要创建一个包含 100 个数字 (1-100) 的数组,然后计算它的数量(1+2+3+4+..+100 = sum)。
我不想手动将这些数字输入到数组中,100 个点会花费一些时间并且会花费更多代码。
我正在考虑使用变量 ++ 直到 100,然后计算它们的总和。不知道具体怎么写。 但重要的是它在数组中,所以我以后也可以说,“数组 55 是多少”,我可以很容易地看到它。
【问题讨论】:
我需要创建一个包含 100 个数字 (1-100) 的数组,然后计算它的数量(1+2+3+4+..+100 = sum)。
我不想手动将这些数字输入到数组中,100 个点会花费一些时间并且会花费更多代码。
我正在考虑使用变量 ++ 直到 100,然后计算它们的总和。不知道具体怎么写。 但重要的是它在数组中,所以我以后也可以说,“数组 55 是多少”,我可以很容易地看到它。
【问题讨论】:
方法如下:
// 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);
【讨论】:
如果您只想计算 1,2,3...n 的总和,那么您可以使用:
int sum = (n * (n + 1)) / 2;
【讨论】:
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
【讨论】:
我不确定您希望生成的数组采用哪种结构,但以下代码将满足我的认为您的要求:
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...]
【讨论】:
填充数组:
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
【讨论】:
如果您的数字数组始终以 1 开头并以 X 结尾,那么您可以使用以下公式: 总和 = x * (x+1) / 2
从 1 到 100,总和为 100 * 101 / 2 = 5050
【讨论】:
这实际上是公差为1的算术级数的总和。所以这是自然数和的一个特例。只需一行代码即可轻松完成。
int i = 100;
// Implement the fomrulae n*(n+1)/2
int sum = (i*(i+1))/2;
System.out.println(sum);
【讨论】:
int[] nums = 新的int[100];
int sum = 0;
// 使用for循环填充数字 for (int i = 0; i
{
nums[i] = i + 1;
sum += n;
}
System.out.println(sum);
【讨论】:
数组已声明但未初始化值,如果您想通过迭代循环插入值,此代码将起作用。
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]);
}
}
}
【讨论】: