因此,我尝试使用一种简单的递归方法来向后打印数字。我对数字的长度1进行了硬编码,因此,如果我有四个数字,则长度将为3。但是由于某种原因,它只返回我号码的最后一位。
static int len=3;
public static int backwards(int copy)
{
if(copy==0)
{
return 0;
}
return backwards(copy/10) + (int)Math.pow(10, len--)*copy%10;
}
答案 0 :(得分:0)
您应在
之后在递归函数中调用向后()(int)Math.pow(10, len--)*copy%10;
由于您已将len varibale设置为静态,因此它将在每次递归调用后减少,因此在第一个调用中,您只会得到len = 0,并且您应该在括号中放置copy%10,以便使其具有优先级订单。
下面的代码将帮助您完成工作。
static int len=3;
public static int backwards(int copy)
{
if(copy==0)
{
return 0;
}
return (int)Math.pow(10, len--)*(copy%10) + backwards(copy/10);
}
答案 1 :(得分:0)
这个简单的逻辑呢?从最后的(number %10 )
开始打印剩余的modulus
,以得到相反的数字。
我们可以通过取recursively
(数字%10)来获得数字的最后一位。打印最后一位数字public static void backwards(int copy)
{
if(copy<=0)
return;
System.out.print(copy%10);
backwards(copy/10);
}
,您将获得所需的结果。
function myFunction(num) {
var p = document.getElementById("mydata");
for (var i = 0; i <= num; i++) {
sum = sum + i;
p.innerHTML = "Result = " + sum;
}
}