그래서이 연습을하고 있습니다. 선생님은이 줄에서 num/10을 원한다고 말합니다. 메서드에서 System.out.print(numDigits(num/10));
(원래 숫자가 0 0이 아닌 1 자리수를 반환합니다.) 그러나 나는 그가 어디에서 원하는지 전혀 모른다.숫자 자릿수를 반환하는 재귀 메서드, 0에 대한 도움말
이 방법은 간단 나에게
(* 숫자의 자릿수를 계산하는 재귀와 함께 할 수 있어야합니다),하지만 당신은 당신이 원하지 않는 많은 코드를 작성하는 경우 같아요 계속해서 x/10을 입력하십시오.
import java.util.*;
public class NumDigits
{
public static void main(String[]args)
{
int num;
Scanner input = new Scanner(System.in);
num = input.nextInt();
input.close();
System.out.print(numDigits(num/10));
}
public static int numDigits(int x)
{
if (x == 0)
{return 1;}
else
{
return 1 + numDigits(x/10);
}
}
}
나는이 작업을 수행 할 수도 있겠죠,하지만 ... 더 많은 코드를 취/
import java.util.*;
public class NumDigits
{
public static void main(String[]args)
{
int num;
Scanner input = new Scanner(System.in);
num = input.nextInt();
input.close();
System.out.print(numDigits(num, num));
}
public static int numDigits(int x, int num)
{
if (num == 0)
{return 1;}
else if (x == 0)
{return 0;}
else
{
return 1 + numDigits(x/10, num);
}
}
}
당신이 명확히 수 뭘 묻고있는거야? – jrad
단위 테스트를위한 훌륭한 코드는 0, 1, 15, 20, 100 등의 테스트를 통해 좋은 알고리즘을 설계하는 데 도움이 될 수 있습니다. 힌트'Math.log'는 영리한 방법을 제공 할 수도 있습니다.) –
나는 선생에게 그 방법에 더 많은 코드를 넣는 대신에 num/10을 사용하는 것이 더 간단하므로 (0은 0 자리가되지 않음), 그는 "당신이 바로 거기에있어, 메인 메서드에서 num/10을 가지지 않고 재귀 적 메서드 인" – user3146998