当前位置: 首页 > 知识库问答 >
问题:

Java布尔递归

夏何平
2023-03-14

我有一个数组,如果两个相邻的数被10除,它将返回true。现在它的回报总是假的。

public static boolean divideByTen(int arr[], int num) {
        int i = num - 1;
        if(i > 0) {
            divideByTen(arr, num - 1);
            if(arr[i] + arr[i - 1] % 10 == 0)
                return true;
        }return false;
        
    }

共有2个答案

宓跃
2023-03-14

我试图将布尔值存储在一个变量中。我认为在您的情况下,它将返回false,除非您的if条件在最后不为真。

public static void main (String[] args) 
{
    int[] a = new int[] {1, 2, 3, 4, 1, 2, 30, 2};
    System.out.println(divideByTen(a, a.length - 1));
}



public static boolean divideByTen(int arr[], int num){
    boolean flag = false;
    
   if(num < 1){
       return flag;
   }
    
    flag = divideByTen(arr, num -1);
    
    if(num > 0){
        if((arr[num-1] + arr[num]) % 10 == 0){
            flag = true;
        }
    }
    return flag;
}
穆华彩
2023-03-14
divideByTen(arr, num - 1);

这会调用分拜登(递归)并丢弃结果。递归不是魔法或特殊的;你只是…调用一个方法。它碰巧和你所在的方法相同,但仅此而已。调用一个方法而不将其值分配给任何东西意味着返回的值被丢弃。

大概,你想要如果(divideByTen(arr,num -1))返回true;相反。

 类似资料:
  • 我注意到java有一个问题。它不能解析空值的布尔类。我知道它有静态方法,但它的签名声明它只接受,而不接受。 换句话说,它有以下签名: 但不是: 检查布尔值而不陷入NullPointerException的最佳方法是什么?

  • 我在这个递归练习中遇到了一个问题。 练习是测试字符数组是否只有大写或小写,然后才返回true;否则,如果同时存在小写和大写字母,则返回false。 下面的代码总是返回true。 我试着在每次有大信号或小信号时都计算一个变量,然后如果数量等于数组,那么它是真的,否则它不是真的;但它没有给我这个。这是一个布尔函数,调用递归并没有给出变量的数量。 守则:

  • 这就是我正在研究的问题:“给定一个整数数组,是否可以选择一个整数组,使得这个组和给定的目标有这些附加的约束条件:数组中所有5的倍数都必须包含在组中。如果紧接在5倍数后面的值是1,就不能选择它。(不需要循环。)” 我尝试了以下操作: 但它只得到5的倍数,我试过: 但它不起作用,因为有时5的倍数不包括在内。 我知道我的代码还没有完成第二个约束。 有什么想法吗?

  • 首先,如果我搞砸了,很抱歉,这是我在这里的第一个问题。第二,对不起,我的代码很乱,我刚开始在学校学习java。 所以,我编写了一个计时器,从00:00:00上升到23:59:59。秒、分钟和小时使用内部和外部循环上升,然后每秒钟在控制台中打印一次。我有一个布尔值来检查值是否小于10。如果数字小于10,它会在数字前加上0,这样它就被打印为01:02:03而不是1:2:3。问题是,一旦值等于或大于10

  • 我被一件简单的事情困住了。我有一个名为“tags”的布尔值数组能够通过布尔值访问数组的每个元素对我来说很重要: 我传入trackTags数组并将布尔值赋给它(比如说[true,true,true,false])。因此,当我调用trackTags[0]时,我得到了“true”但是,当我打印“Energy”(能量)时,它应该与trackTags(0)相同,该值始终为false。我知道booleans