递归方法乘法而不使用运算符

时间:2017-06-23 05:57:36

标签: java recursion

import java.util.Scanner;

public class LAB1201 {
    static int multi(int a, int b){
        int c = 0;
        if (b == 0) {
            c = 0;
        }

        if (b < 0) {
            c = (-multi(a, -b));
        }

        if (b > 0) {
            c = (a + multi(a, b-1));
        }

        return c;
    }

    public static void main(String[]args){
        int aa;
        int bb;
        Scanner scanner = new Scanner(System.in);
        System.out.println("Type in a integer");
        aa = scanner.nextInt();
        System.out.println("Type in another integer");
        bb = scanner.nextInt();
        multi(aa,bb);
    }
}

我正在编码 (写一个递归函数,使用递归将两个数字x和y相乘(不要 使用乘法运算符)。您的主要方法应该提示用户输入两个 数字,调用你的函数,并打印结果)

它允许我输入值,但我不确定为什么它不返回任何值 它什么也没有返回......

3 个答案:

答案 0 :(得分:0)

您忘记输出值。

System.out.println(aa + " x " + bb + " = " + multi(aa,bb));

输出示例:

Type in a integer
4
Type in another integer
8
4 x 8 = 32

答案 1 :(得分:0)

你的代码很好。您只是忘了打印方法static int multi(int a, int b)返回的结果。您可以找到工作代码here

答案 2 :(得分:0)

您缺少打印声明。这是代码,请看一下。

import java.util.Scanner;
 public class so {
static int multi(int a, int b){
    int c = 0;
    if(b<0){
        return c=(-multi(a, -b));
    }
    if(b>0){
        return c=(a+multi(a, b-1));
    }
    return c;
}
public static void main(String[]args){
    int aa;
    int bb;
    Scanner scanner = new Scanner(System.in);
    System.out.println("Type in a integer");
    aa = scanner.nextInt();
    System.out.println("Type in another integer");
    bb = scanner.nextInt();

    System.out.println(multi(aa,bb));
}