我目前正在开发一个程序来给用户输入整数,只打印那些包含数字1 2或3的。这是我到目前为止的代码:
public static void main(String[] args){
Scanner s = new Scanner(System.in);
int[] x=new int[5];
System.out.println("Enter 5 integers: ");
for(int i=0; i<x.length;i++) {
x[i]=s.nextInt();
boolean temp=recursion(x[i]);
if(temp==true) {
System.out.print(x[i]);
}
}
}
public static boolean recursion(int y) {
if(y%10==1 || y%10==2 || y%10==3) {
return true;
}
else if(y%10==0) {
return false;
}
else {
int remain=y/10;
recursion(remain);
}
}
所以我的方法很简单,我使用一个简单的bool递归来返回true或false,如果它确实包含1 2或3则为true,如果不包含则为false。我遇到的问题是,我在递归其他语句中没有返回任何内容。我知道我必须返回一些东西,但不确定要返回什么或是否有必要。我可以更改什么来使这个工作?
使用下面的代码,希望这会有所帮助。
public static boolean recursion(int y) {
if(y%10==1 || y%10==2 || y%10==3) {
return true;
}
else if(y%10==0) {
return false;
}
else {
int remain=y/10;
return recursion(remain);
}
}
我想你只需要做
return recursion(remain);
您的递归基本情况有点不对劲,因此在语句eredif(y==0)
中,数字100将导致它失败,即使它是有效的。您希望您的假基本情况实际上是eredif(y==0)
,这意味着您已经遍历了整个数字。解决方案如下所示:
public static boolean recursion(int y) {
int positive = Math.abs(y);
if(positive%10==1 || positive%10==2 || positive%10==3) {
return true;
} else if (positive == 0) {
return false;
}
return recursion(positive / 10);
}
编辑:对数字调用绝对值可以使其也适用于负数,但可以对传入的整数调用abs,效果相同。
如何编写一个递归回溯函数,在该函数中,它打印所有的N位数字,使数字中每3个连续数字的总和正好等于S,其中N小于或等于10,并且是从0到27。 代码: 示例输出: 我很困惑如何递归地写这个。
问题内容: 在我的中,我需要使用,但是我不确定如何截断到2个小数位: 示例:获取 打印为: 问题答案: 用这个:
我正在开发一个数独小程序,我想制作它的单元格(扩展JTextField),以便它只接受0-9和长度为1之间的整数。稍后我会对它进行更多限制(以便它符合游戏规则)。我从: 在这里,我试图过滤输入,对于开始,我只是试图将其限制为整数和一个数字,但似乎我可以输入任意多的数字,而最后一行不会被触发。 想在这里得到一些帮助,谢谢:
我正在工作的一个regex只允许在逗号前最多10个数字和逗号后最多3个数字。 到目前为止,我已经想出了这个: 我将验证JavaScript中的输入。 以下示例可作为用户输入: 1234567890,123 4,1 234,45 56457 输入必须始终以自然数字开头,并且只能出现逗号。
本文向大家介绍限制文本框只能输入数字||只能是数字和小数点||只能是整数和浮点数,包括了限制文本框只能输入数字||只能是数字和小数点||只能是整数和浮点数的使用技巧和注意事项,需要的朋友参考一下 onlyNumber.html 测试代码: 以上代码内容简单给大家介绍了限制文本框只能输入数字||只能是数字和小数点||只能是整数和浮点数的知识,希望能够帮助到大家!
下面是完整的问题: 问题3【30分】。编写一个包含两个正整数k和n的函数,其工作方式如下1。打印由数字1组成的长度k的所有递增序列。。。n 2。返回此类序列的数目。例如 打印序列的具体顺序由您决定。在数字之间加一个空格。别忘了用新行分隔序列。您的函数应该在合理的时间内对输入n、k进行处理,直到20。[提示:使用递归。您可能还想使用助手函数] 我的实现只打印第一个序列,然后停止。我哪里做错了? 这是