Я решаю код для конкурентного программирования, и мой код, который я считаю правильным, выдает ошибку для некоторых тестовых случаев: Вопрос в том, чтобы найти общее число цифр в целом числе с помощью рекурсии.
Мой код:
import java.util.*;
import java.io.*;
import java.lang.*;
class Driver_class
{
public static void main(String args[])
{
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
while(t-- > 0)
{
int n =sc.nextInt(); // taking number "n" as input
System.out.println(new Digitcount().countDigits(n)); // prints the count of digits
}
}
}
class Digitcount
{
static int count=0;
public static int countDigits(int n)
{
if(n<1)
return 0;
countDigits(n/10);
count++;
return count;
}
}
Переменная count - это общее количество цифр. Тестовый случай, что этот код не проходит:
Однако этот код проходит все тестовые случаи:
class Digitcount
{
static int count=0;
public static int countDigits(int n)
{
if(n<1)
return 0;
return countDigits(n/10)+1;
}
}
Я не вижу разницы ни в одном из мои коды относительно выходного значения. Что является причиной того, что первый код не прошел тестовый пример?