使用递归求数字之和

2024-07-01

对Java来说相当陌生,但我正在编写一个教程,其中我必须使用递归找到用户输入整数的数字总和。到目前为止,这是我的代码:

公开课其他{

 public static void main(String[] arg) {

     Scanner s=new Scanner(System.in);
     System.out.println("Enter any integer: ");
     int sum=0;
     int x=s.nextInt();
     int y=recursion(x, sum);
     System.out.println("The Sum of the digits is: "+ y);

 }   

public static int recursion(int y, int sum) {
  if(y/10>=1) {
      int tempvar =y%10;
      int remain=y/10;
      sum+=tempvar;
      if(remain!=0) {
          recursion(remain, sum); 
      }
      return sum;     
  }
  else {            
      return y;
  }

}

因此,如果我输入:123,它会返回 3。我在纸上一步一步地完成了这个程序,从逻辑上讲,我想不出我错过了什么。


两件事情:

  1. 您忽略了递归调用的结果。

Change

recursion(remain, sum); 

to

sum = recursion(remain, sum);
  1. 在你的基本情况下,你忽略sum,这是迄今为止数字的总和,并仅返回您处理的最后一个数字。

Change

return y;

to

return sum + y;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用递归求数字之和 的相关文章

随机推荐