【问题标题】:recursion + bug at my main [duplicate]我主要的递归+错误[重复]
【发布时间】:2017-06-16 16:05:59
【问题描述】:

我正在使用 java bluejay 尝试解决递归问题。

问题:给定一个自然数数组(大于 0) 和一个 int,该方法需要判断数组是否包含一种对数字求和以获得给定 int 的方法。 例如 {4,5} int = 13 >> 4+4+5 = 13 = true 例如 {4,5} int = 3 >>> false.

第二个问题是,当我使用我的 main 时,它说“找不到符号 - 方法 isSumOf(int[],int) 虽然我确实有这种方法...

这是我的课程:

public class Ex14
{
    static int allways;
    static int index = -1;

    public static boolean isSumOf(int[] s, int n){
        if(index == -1) index = s.length - 1;
            return isSumOf(s, n, index);
    }

    private static boolean isSumOf(int[] s, int n, int index){
        int temp = s[index];   
        if(allways == n) {return true;}
        if(allways > n && index != 0) {allways -= temp + s[index - 1]; 
        if(allways / s[index - 1] == s.length) index --;}
        if(allways > n && index == 0) return false;
        if(allways < n) allways += temp; return isSumOf(s, n);
    }
}

我的主要课程:

public class bdikot
{ 
    public static void main(String[] args){
    int [] hi= new int[1];
    hi[0]=3;


    System.out.println(isSumOf(hi,7));}
}

在此先感谢 Asaf :-)。

【问题讨论】:

  • 该方法在不同的类中。如果它在不同的类中,则需要指定类名。
  • 顺便说一句,请正确格式化您的代码。读起来很尴尬。

标签: java recursion main


【解决方案1】:

对于你的第二个问题,我认为你需要改变:

System.out.println(Ex14.isSumOf(hi,7));

因为isSumOf 存在于与您的 main 方法不同的类中。

您可能还想看看:

https://en.wikipedia.org/wiki/Programming_style

https://google.github.io/styleguide/javaguide.html

因为遵循这些将使您的代码更易于他人阅读。

【讨论】:

    猜你喜欢
    • 2016-06-20
    • 1970-01-01
    • 2016-05-29
    • 1970-01-01
    • 2015-03-04
    • 1970-01-01
    • 2011-01-24
    • 1970-01-01
    • 2021-04-26
    相关资源
    最近更新 更多