Замените все 0 на 5 || я написал код, но он не работает | o/p в обратном порядке [закрыто]

Проблема: дано число N. Задача состоит в том, чтобы завершить функцию convertFive(), которая заменяет все нули в числе на 5 мой код | пожалуйста, подтвердите любую помощь мне

      public class Replaceall0swith5 {
    public static void convertFive(int n) {
    //add code here.
        int digit, sum = 0;
        while (n > 0) {
            digit = n % 10;
            if (digit == 0) {
                digit = 5;
            }
            sum = sum * 10 + digit;
            n = n / 10;
        }
        System.out.print(n + " All O's replaced with 5 " + sum);
    }

    public static void main(String[] args) {
        Replaceall0swith5.convertFive(1004);
    }
}

3 ответа

Решение

Попробуй это.

      public static void convertFive(int n) {
    int sum = 0;
    for (int rank = 1; n > 0; n = n / 10, rank *= 10) {
        int digit = n % 10;
        if (digit == 0)
            digit = 5;
        sum = sum + digit * rank;
    }
    System.out.print(n + " All O's replaced with 5 " + sum);
}

Это в основном то же самое, что и перестановка числа, за исключением того, что оно меняет 0 на 5.

      while (n > 0) {
        digit = n % 10;
        if (digit == 0) {
            digit = 5;
        }
        sum = sum * 10 + digit;
        n = n / 10;
    }

дает 4551 вместо 1554.
цифра = 4: сумма = 0 * 10 + 4 = 4
цифры = 0: сумма = 4 * 10 + 5 = 45
цифра = 0: сумма = 45 * 10 + 5 = 455
цифр = 1: сумма = 455 * 10 + 1 = 4551 Простым
решением было бы преобразовать его в строку и заменить 0 на 5. @Fmxerz уже дал решение для этого.
или, если вы собираетесь с этим, вы можете использовать функцию Math.pow.

      import java.lang.Math;
....

public static void convertFive(int n) {
    int i = 0;
    int digit, sum = 0;
    while (n > 0) {
        digit = n % 10;
        if (digit == 0) {
            digit = 5;
        }
        sum = sum + digit*(int)Math.pow(10,i);
        n = n / 10;
        i++;
    }
    System.out.print(n + " All O's replaced with 5 " + sum);
}

Есть ли причина, по которой вы используете модуль для замены?

          public class Replaceall0swith5 {
        public static void convertFive(int n) {
            int replacedValues = Integer.valueOf(String.valueOf(n).replace("0","5"));
            System.out.print(n + " All O's replaced with 5 " + replacedValues);
    
        }
    
        public static void main(String[] args) {
            Replaceall0swith5.convertFive(1004);
        }
    }
Другие вопросы по тегам