Javaの新機能ですが、再帰を使用してユーザー入力整数のSum of Digitsを見つける必要があるチュートリアルに取り組んでいます。これまでの私のコードは次のとおりです。
パブリッククラスその他{
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つずつ実行してみたところ、論理的に、見逃したことは何も考えられません。
2つのこと:
変化する
recursion(remain, sum);
に
sum = recursion(remain, sum);
sum
では、これまでの桁の合計であるを無視し、作業した最後の桁のみを返します。変化する
return y;
に
return sum + y;
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加