在特定索引处将数字添加到现有数字的方法

时间:2013-12-07 12:32:55

标签: java

我的作业中有一个问题,就是要我创建一个有3个参数的方法:

  1. int number(随机数)
  2. int digit(要添加到数字的数字)
  3. int index(在此指定索引处添加数字,因此最后一个数字将为0,下一个数字等)
  4. 现在我们刚刚开始学习Java,我们不允许使用它们提供的任何魔术方法,只允许使用基本操作......当然还有所有循环和条件。

    我确实创建了一种计算数字的方法,但我的问题是将数字添加到数字中。

    public void insertDigit (int number, int digit, int index) {
    
        int newNumber;
        int numberOfDigits = 0;
        int temp = 0;
    
        while (number != 0) {
    
            temp = number % 10;
            number /= 10;
            numberOfDigits++;
        }
    
    
    }
    

    例如:someObject.insertDigit(345,5,1) - 这是输入

    输出 - 3145

1 个答案:

答案 0 :(得分:0)

由于这是一个学习练习,我将简要解释问题背后的数学;你必须编写所有代码以满足作业。

为了完成作业,您需要做两件事:

  1. 从数字中删除最后k个数字 - 给定Nm个数字和一个小数字k,产生两个数字ABA数字m-k前面有N个数字,B最后有k个数字A B个数字
  2. 通过将第二个数字附加到第一个数字将两个数字合并为一个 - 给定两个数字NB,按第三个数字AN的数字添加到A
  3. 的数字后面

    给出(1)和(2)的解决方案,您应该能够首先将B的数字切换为indexD位置A来解决您的问题1}},将所需数字AD附加到数字B,生成AD,最后将ADB附加到k,以获得int pow10k = (int)Math.pow(10, k); // If using Math is not allowed, compute pow(10,k) with a simple loop int A = N / pow10k; int B = N % pow10k; 的最终结果1}}。

    以下是你如何解决#1:构造一个等于你想要削减数字的索引k的10的幂,并计算

    // Append B to A
    int k = numDigits(B);
    int pow10k = (int)Math.pow(10, k);
    int AB = A*pow10k + B;
    

    以下是你如何解决#2:计算所附数字中的位数{{1}}(你的帖子显示了几乎可行的方式),然后计算相应的10的幂。结果计算如下:

    {{1}}