0 / 0 / 0
Регистрация: 04.07.2013
Сообщений: 17
1

Как определить, какую наибольшую степень числа 100 можно вычислить, пользуясь типом int

16.07.2013, 14:25. Показов 4414. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет! Только начал изучать java и сталкнулся с такой проблемкой. Вот собственно сама задача.
Определить, какую наибольшую степень числа 100 можно вычислить, пользуясь типом int
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.07.2013, 14:25
Ответы с готовыми решениями:

Определить, какую наибольшую степень числа 3 можно вычислить, пользуясь типом word (longint)
Здравствуйте, помогите пожалуйста. Определите, какую наибольшую степень числа 3 можно вычислить,...

Определите, в какую наибольшую целую положительную степень можно возвести число b
Определите, в какую наибольшую целую положительную степень можно возвести число b, чтобы результат...

Можно ли определить типа вида int[100]
интересует, есть ли возможность через typedef определить тип массива или только как то так...

Найти наибольшую степень 3, не превышающую заданного числа m
найти наибольшую степень 3, не превышающую заданного числа m

9
ɐwʎ ɔ vǝmоɔ dиw ɐʚонɔ
443 / 442 / 100
Регистрация: 14.10.2012
Сообщений: 1,146
Записей в блоге: 9
16.07.2013, 14:34 2
оно?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class Test {
 
    public static void main(String[] args) {
        final int NUMBER = 100;
        int step = 0;
        int rezult = 0;
        
        while (rezult < Integer.MAX_VALUE) {
            rezult = (int)Math.pow(NUMBER, step);
            step++;
        }
        
        System.out.println(step);
        
    }
}
1
0 / 0 / 0
Регистрация: 04.07.2013
Сообщений: 17
16.07.2013, 14:39  [ТС] 3
за задачу спс, только если не трудно можно пояснения написать.

final int NUMBER = 100; // я так понял, задание конечного числа типа int
int step = 0; //
int rezult = 0; // переменные типа int с начальным занчением 0

while (rezult < Integer.MAX_VALUE) // начало цикла, результат доллжен быть меньше max значения integer?
rezult = (int)Math.pow(NUMBER, step); // переменную rezult приравниваем к чему? что это (int)Math.pow(NUMBER, step)?

step++; // добавляем 1 к результату после цикла

System.out.println(step); // вывод значения
0
154 / 154 / 10
Регистрация: 16.10.2012
Сообщений: 354
Записей в блоге: 1
16.07.2013, 14:42 4
Взять логарифм по основанию 100 от Integer.MAX_VALUE?
0
0 / 0 / 0
Регистрация: 04.07.2013
Сообщений: 17
16.07.2013, 14:45  [ТС] 5
Цитата Сообщение от Gibby Посмотреть сообщение
Взять логарифм по основанию 100 от Integer.MAX_VALUE?
а если конкретней, то это к чему)? я просто только начал изучать, поэтому туплю так)

а поправка, это я так понял вы к самой задаче
0
154 / 154 / 10
Регистрация: 16.10.2012
Сообщений: 354
Записей в блоге: 1
16.07.2013, 14:49 6
100x = Integer.MAX_VALUE =>
log100(100x) = log100(Integer.MAX_VALUE) =>
x * log100100 = log100(Integer.MAX_VALUE) =>
x = log100(Integer.MAX_VALUE) .

С функцие y = logax (a = Const) закомы?
1
ɐwʎ ɔ vǝmоɔ dиw ɐʚонɔ
443 / 442 / 100
Регистрация: 14.10.2012
Сообщений: 1,146
Записей в блоге: 9
16.07.2013, 14:54 7
немного там "написал".... вообщем вот так думаю лучше будет в разы и правильней (не идеал, но вроде правильно)
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public class Test {
 
    public static void main(String[] args) {
        // наша константа того числа, которое будет возводить в степень
        final int NUMBER = 100;
        // это число, которое будет степенью (начнем с нуля)
        int step = 0;
        // в эту переменную каждый раз будем вносить "число в степени" для проверки
        int rezult = 0;
 
        // пока "число в степени" меньше максимального значения, что может хранить int крутим цикл
        while (rezult < Integer.MAX_VALUE) {
            // возносим NUMBER в степень (step) и приводим к типу int (нам же именно он нужен)
            rezult = (int) Math.pow(NUMBER, step);
            // строка, которая выводим что вообще происходит в середине
            System.out.println("Степень:" + step + " результат: "+ rezult);
            
            // если результат не равен максимальному значению int - то добавляем степень +1
            if (rezult != Integer.MAX_VALUE) {
                step++;
            }
            // если результат всё-таки равен максимальному - то убираем "лишнюю" степень
            if (rezult == Integer.MAX_VALUE) {
                step--;
            }
 
        }
        System.out.println("Максимальная степень для числа будет: " + step);
 
    }
}
Добавлено через 3 минуты
Цитата Сообщение от Gibby Посмотреть сообщение
100x = Integer.MAX_VALUE =>
log100(100x) = log100(Integer.MAX_VALUE) =>
x * log100100 = log100(Integer.MAX_VALUE) =>
x = log100(Integer.MAX_VALUE) .

С функцие y = logax (a = Const) закомы?
вспомнилось выражение одного программиста
"Есть два пути решения проблемы: первый - математический, второй - "программерский""
1
154 / 154 / 10
Регистрация: 16.10.2012
Сообщений: 354
Записей в блоге: 1
16.07.2013, 16:08 8
Цитата Сообщение от tankomaz Посмотреть сообщение
"Есть два пути решения проблемы: первый - математический, второй - "программерский""
Функция логарифма - это вполне себе "программерское" решение конкретной проблемы. В реалиях начала XVII века
0
Эксперт Java
4091 / 3825 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
16.07.2013, 17:23 9
Цитата Сообщение от tankomaz Посмотреть сообщение
не идеал, но вроде правильно
Ваше решение не работает при NUMBER = 4294967295
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12454 / 7479 / 1752
Регистрация: 25.07.2009
Сообщений: 13,748
16.07.2013, 19:57 10
Цитата Сообщение от Gibby Посмотреть сообщение
Взять логарифм по основанию 100 от Integer.MAX_VALUE?
Опередили...
Java
1
System.out.println((int)(Math.log(Integer.MAX_VALUE) / Math.log(100)) + 1);
0
16.07.2013, 19:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.07.2013, 19:57
Помогаю со студенческими работами здесь

Вычислить приближенное значение суммы бесконечного ряда, не пользуясь операцией возведения в степень
Вычислить приближенное значение суммы бесконечного ряда, не пользуясь операцией возведения в...

Вычислить приближенное значение суммы бесконечного ряда, не пользуясь операцией возведения в степень
Доброго времени суток!:) Вычислить приближенное значение суммы бесконечного ряда, не пользуясь...

Не пользуясь никакими другими арифметическими действиями кроме умножения возвести числа в степень
действительное число а. Не пользуясь никакими другими арифметическими действиями кроме умножения...

Найти наибольшую степень двойки, не превышающую заданного числа n
Найти наибольшую степень двойки, не превышающую заданного числа n.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru