public static boolean countExactly(int num, int digit, int count) {
if(digit <= 9) {
return false;
}
if(num % 10 == digit) {
countExactly(num % 10 + num / 10, digit, count++);
}
return true;
}
我的代码怎么了???我正试图写一个递归方法来求一个数中出现的数。编写一个递归函数,对一个正整数num进行编码,从另一个整数中提取一个数字,不进行负计数。如果数字显示的次数正好是数字,则函数返回true,否则返回false。
示例:输入:122231位:2计数:3输出:真
你可以试试这个
public static boolean countExactly(int num, int digit, int count) {
if (num <= 9 ) {
return (digit==num && count==1) || (digit!=num && count==0) ;
}
if (num % 10 == digit) {
count--;
}
return countExactly( num / 10, digit, count);
}
尝试输入值
以下是您的方法存在的问题:
Count
,递归调用将始终作为Count
传递,然后值将递增,即递增的值将永远不会被使用。根据您的逻辑,它应该是Count
或--Count
。Count精确(num%10 num/10, digit, count)
,这就像调用一个无效函数/方法。它在语法上是正确的,但在您的程序中没有任何用途?你应该这样做:
public class Main {
public static void main(String[] args) {
// Tests
System.out.println(countExactly(122231, 2, 3));
System.out.println(countExactly(122231, 2, 2));
System.out.println(countExactly(122231, 2, 4));
System.out.println(countExactly(1222231, 2, 4));
System.out.println(countExactly(2222231, 2, 4));
System.out.println(countExactly(2222231, 2, 5));
System.out.println(countExactly(2222231, 2, 3));
}
static boolean countExactly(int num, int digit, int count) {
if ((num == digit && count == 1) || (num != digit && num <= 9 && count == 0)) {
return true;
}
if (num <= 9) {
return false;
}
if (num % 10 == digit) {
return countExactly(num / 10, digit, --count);
} else {
return countExactly(num / 10, digit, count);
}
}
}
输出:
true
false
false
true
false
true
false
我有一个任务,它获取一个int值“n”和一个Int Array作为参数,并且应该返回一个布尔值。该方法应该确定给定数组中有多少个“n”。如果数字是偶数,则方法应该返回true,否则返回false。如果数组的长度为0,它也应该返回“false”。 我设法做到的是: 老实说,我真的很困惑,我不知道该怎么办。我真的已经尽力了,但是我在这项任务上工作的时间越长,我就越不理解。感谢任何帮助,并提前感谢您!:
我正在编写一个递归函数,它以一个整数作为输入,它将返回123出现在整数中的次数。 例如: 打印(onetwothree(123123999123)) 将打印出3,因为序列123在我输入函数的数字中出现了3次。 以下是我到目前为止的代码: 这将继续打印“0”。
该函数获取一个整数和一个数字,如果该数字在整数中出现偶数次,则返回true,否则返回false。 例如: 如果 和 ,则该函数应返回 。 如果 和 ,则该函数应返回 。 这是我到目前为止得到的,我被卡住了……这是家庭作业,所以请不要写答案,而是提示我并帮助我自己完成。
问题内容: 我有一个我要为类创建的程序,该程序使用递归返回数组中所有整数的总和。到目前为止,这是我的程序: 但是,我相信我得到了三个都相关的错误,但是我不知道为什么它会找到一种null类型: 问题答案: 该解决方案比看起来简单,请尝试以下操作(假设数组的长度为非零): 这样称呼它:
我正在尝试解决leetcode上的以下问题:硬币兑换2 输入:金额=5,硬币=[1,2,5]输出:4说明:有四种方法来弥补金额: 5=5 5=2 2 1 5=2 1 1 1 5=1 1 1 1 1 我试图实现一个迭代的解决方案,本质上模拟/模仿递归使用堆栈。我已经设法实现了它,解决方案有效,但它超过了时间限制。 我注意到递归解决方案利用记忆进行优化。我也想在我的迭代解决方案中包含这一点,但我不知道
假设数组A:1,2,3,1,1,3。不同的整数应在数组B中:1,2,3。然后,函数应打印:[1,1][1,2][1,3][2,1][2,2][2,3][3,1][3,2][3,3]。 我试图解决不重复的整数问题,但没有递归 但问题是我必须以递归的方式解决它,有什么想法吗?