将0添加到整数的末尾

时间:2014-10-22 18:35:38

标签: java

for(i=0; i<array.length; i++){
  sum = 4 * 5;
}

我要做的是添加((array.length - 1) - i)0到sum的值。对于这个例子,假设数组长度是3. sum等于20.因此对于循环的第一次迭代,我想将((3 - 1) - 0)0加到sum的值,所以sum将是2000.下一次迭代将是((3 - 1) - 1)0。总和将等于200,依此类推。我希望我想要实现的目标是明确的。

所以我的问题是:

是否可以只移动一个int来添加额外的数字?到目前为止,我的搜索结果表明它不是。

如果没有,我怎样才能达到预期目标?

感谢您阅读我的问题,任何帮助都会有很大帮助。

6 个答案:

答案 0 :(得分:2)

你可以将它乘以10然后多次。

200 * 10 = 2000

因此,在您的情况下,您必须使用for循环直到数组结束并且每次迭代乘以sum。但请注意,因为int的最大值是2 ^ 31,所以它超过了它,它将回滚到0

答案 1 :(得分:0)

for(int i=array.length; i>0; i--){
  sum = 20;
  for(int j=0; j < (i - 1); j++)
  {
     sum *= 10;
  }
}

使用内部循环将该次迭代的次数乘以10。您需要每次都在外循环中重置sum。

答案 2 :(得分:0)

乘以10,然后使用<(不是>

int sum = 20;
int[] array = { 1, 2, 3 };
for (int i = 0; i < array.length; i++) {
    int powSum = sum;
    for (int j = array.length - 1; j > i; j--) {
        powSum *= 10;               
    }
    System.out.println(powSum);
}

输出(按要求)

2000
200
20

答案 3 :(得分:0)

  1. 您需要检查您的for循环条件:i>array.length。由于i从0开始,除非数组的长度也为0(空数组),否则此循环不会运行。正确的条件是i < array.length
  2. 您想要的这种“转变”可以通过在循环内创建一个等于10 i 的总和的临时变量来实现。在Java的Math库中,有一个pow(a,b)函数可以计算 b 。考虑到这一点,你想要的是这样的:

  3. int oldSum = 4 * 5;
    
    for (int i = 0; i < array.length; i++) {
        int newSum = oldSum * Math.pow(10,i);
    }
    

答案 4 :(得分:0)

对于长度= n 的数组;您最终将分别为(n - 1) + (n - 2) + ... + 2 + 1 + 0添加i = 0, 1, ... n-2, n-1个零。

因此,要追加(z) = n * (n-1) / 2

的零个数

所以答案是sum * (10 ^ z)

<强> [编辑] 以上可用于在N次迭代后找到答案。 (我想念这个问题)

int n = array.length;
long sum = 20;
long pow = Math.pow(10, n-1); // for i = 0
for (int i = 0; i < n; i++) {
    System.out.println(sum*pow);
    pow /= 10;
}

答案 5 :(得分:0)

您可以通过将n乘以sum,将sum个零添加到数字的末尾10 * n

int sum = 20;
for (int i = 0; i < ary.length; ++i) {
    int zeroesToAdd = ary.length - 1 - i
    sum *= (zeroesToAdd > 0) ? zeroesToAdd * 10 : 1
}
System.out.println("Sum after loop: " + sum);