я пытаюсь решить эту проблему:Junit Тест для алгоритма
Написать функцию, настойчивость, которая принимает в положительном параметре NUM и возвращает его мультипликативную настойчивость, которая является количеством раз, вы должны умножить цифры в NUM, пока вы не достигнете одноразрядное
Это код, который я написал: тест
public class Hello {
static int counter = 0;
public static int persistence(long n) {
int digits = digit_count(n);
if (digits <= 1) {
return 0;
}
persistence(product(n));
counter++;
return counter;
}
public static int product(long n) {
int productValue = 1;
while (n != 0) {
productValue *= n % 10;
n /= 10;
}
return productValue;
}
public static int digit_count(long n) {
int count = 0;
while (n > 0) {
n /= 10;
count++;
}
return count;
}
и JUnit:
assertEquals(3, Hello.persistence(39));
assertEquals(0, Hello.persistence(4));
assertEquals(2, Hello.persistence(25));
assertEquals(4, Hello.persistence(999));
испытание терпит неудачу на 25 и 999, но если я пытаюсь вызвать Hello.persistence (25) и Hello.persistence (999) в основного метода, который я получил необходимые значения. Пожалуйста, объясните, как это возможно?
Нет, первые два утверждения хорошо работают –