Я пытаюсь создать таблицу с n от 16 до 2048 вместе с log (n), n * log (n) ...
Сначала я напечатал результаты дваждыи это сработало очень хорошо, за исключением того факта, что таблица не была выровнена, а скорее испорчена при n = 256. Я полагаю, что результаты могли быть слишком большими для типа данных double, поэтому я переключился на long.
public class FunctionGrowth {
public static void main(String[] args) {
long n = 16L;
System.out.println("log(n) \tn \t\tn*log(n)\t\tn^2 \tn^3 \t\t2^n");
while(n <= 2048) {
long l = (long) Math.log(n);
long nl = (long) (n*Math.log(n));
long pow = (long) Math.pow(n,2);
long cube = (long) Math.pow(n,3);
long pow2 =(long) Math.pow(2,n);
System.out.printf("%.2d\t%.0d\t\t%.2d\t\t\t%d\t%d\t\t%d\n", l, n, nl, pow, cube, pow2);
n = n*2;
}
}
}
И все же теперь у меня возникла новая проблема: исключение в потоке "main" java.util.IllegalFormatPrecisionException: 2
Я пробовал много способов приведения журнала (n), pow (п, 2) ... от математического класса до длинного, но пока ничего не работает.
Не могли бы вы помочь мне с этой проблемой? Я много борюсь.