递归除法法

时间:2012-04-17 03:50:41

标签: java function methods recursion

我需要创建一个递归方法,将第一个值(基数10)转换为第二个数字的数字。这是我到目前为止,但由于某种原因,我不能让递归函数正常工作。谢谢。

package lab06250;

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
      Number newNumber;
      newNumber = new Number();
      Scanner kbd = new Scanner(System.in);
      int number;
      int remainder = 0;
      int base;

      System.out.println("Enter number:");
      number = kbd.nextInt();
      System.out.println("Enter base");
      base = kbd.nextInt();
      kbd.nextLine();

     System.out.println(Division(number, base));

    }
    public static int Division(int n, int b){
        int result;
        if (n == 1)
            result = 1;
            else
               result = Division(b, (n / b));

        return n;
    }

}

1 个答案:

答案 0 :(得分:1)

首先,如果你想改变基数(猜测数字系统),我认为你的逻辑中有一个流程

的工作原理如下:

11十进制(数字系统10)然后

1*(power(10,1)) + 1*(power(10,0)

其二进制等效值(2个基数中最高的1个)

1011

1*(power(2*3)) + 0*(power(2*2)) + 1*(power(2*1)) + 1*(power(2*0))

辛烷当量(8碱基中最高的7)

13

1*(power(8*1)) + 3*(power(8*0))  

你需要在上面的基础上写一些东西并纠正你的逻辑。只有一个建议使用%而不是除法并尝试添加结果。