В чём разница между моим решением и решением, которое предлагает джава раш?
Есть ли принципиально важные отличия для написания кода или они одинаковые, и допустимо ли такое решение? Если нет, то почему?
Моё решение ниже. Решение от Джава Раш:
public class Solution {
public static void main(String[] args) {
int decimalNumber = 21;
System.out.println("Десятичное число " + decimalNumber + " равно восьмеричному числу " + toOctal(decimalNumber));
int octalNumber = 25;
System.out.println("Восьмеричное число " + octalNumber + " равно десятичному числу " + toDecimal(octalNumber));
}
public static int toOctal(int decimalNumber) {
int octalNumber = 0;
if (decimalNumber <= 0) {
return octalNumber;
}
int i = 0;
while (decimalNumber != 0) {
octalNumber = (int) (octalNumber + (decimalNumber % 8) * Math.pow(10, i++));
decimalNumber = decimalNumber / 8;
}
return octalNumber;
}
public static int toDecimal(int octalNumber) {
int decimalNumber = 0;
if (octalNumber <= 0) {
return decimalNumber;
}
int i = 0;
while (octalNumber != 0) {
decimalNumber = (int) (decimalNumber + (octalNumber % 10) * Math.pow(8, i++));
octalNumber = octalNumber / 10;
}
return decimalNumber;
}
}package com.javarush.task.pro.task09.task0905;
import java.util.regex.Pattern;
/*
Восьмеричный конвертер
*/
public class Solution {
static int i = 0;
static int j = 0;
static int z = 0;
static int p;
static int u;
static int w = 0;
public static void main(String[] args) {
int decimalNumber = 21;
System.out.println("Десятичное число " + decimalNumber + " равно восьмеричному числу " + toOctal(decimalNumber));
int octalNumber = 25;
System.out.println("Восьмеричное число " + octalNumber + " равно десятичному числу " + toDecimal(octalNumber));
}
public static int toOctal(int decimalNumber) {
if (decimalNumber > 0) {
p = decimalNumber / (int) (Math.pow(8, i));
for (; p > 0; i++) {
z = z + (p % 8) * (int) (Math.pow(10, i));
p /= 8;
}
return z;
} else return 0;
}
public static int toDecimal(int octalNumber) {
if (octalNumber > 0 ) {
u = octalNumber / (int) (Math.pow(10, j));
for (; u > 0; j++) {
w = w + (u % 10) * (int) (Math.pow(8, j));
u /= 10;
}
return w;
} else return 0;
}
}