У меня есть число длиной nbr = 10000. Я увеличиваю и уменьшаю это значение, а сумма увеличения или уменьшения зависит от его значения. Если nbr > x, то nbr += xx, если nbr > y, то nbr += yy и т. д. В зависимости от других факторов будут меняться значения приращения (xx, yy и т. д.), а также изменятся пределы изменения значения приращения (x,y и т. д.). Мне нужна функция public int увеличенияNbr(int nbr), которая возвращает увеличенное число в соответствии с приведенной выше логикой и делает это максимально эффективно. В настоящее время я реализую это следующим образом, но чувствую, что это не очень эффективно.
private TreeMap aboveNbr_increment_map;
private Integer getIncrementValueAboveNbr(int nbr) {
// finds the valid increment below a certain price
Map.Entry entry = aboveNbr_increment_map.lastEntry();
while (entry != null) {
if (price>=entry.getKey()) {
return entry.getValue();
}
entry = aboveNbr_increment_map.lowerEntry(entry.getKey());
}
// otherwise return the lowest increment size
return aboveNbr_increment_map.get(aboveNbr_increment_map.firstKey());
}
public Integer getNextNbrAbove(int nbr) {
return nbr + this.getIncrementValueAboveNbr(nbr));
}
Подробнее здесь: https://stackoverflow.com/questions/430 ... big-number
Самый эффективный способ найти следующее приращение в большом числе ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1770210395
Anonymous
У меня есть число длиной nbr = 10000. Я увеличиваю и уменьшаю это значение, а сумма увеличения или уменьшения зависит от его значения. Если nbr > x, то nbr += xx, если nbr > y, то nbr += yy и т. д. В зависимости от других факторов будут меняться значения приращения (xx, yy и т. д.), а также изменятся пределы изменения значения приращения (x,y и т. д.). Мне нужна функция public int увеличенияNbr(int nbr), которая возвращает увеличенное число в соответствии с приведенной выше логикой и делает это максимально эффективно. В настоящее время я реализую это следующим образом, но чувствую, что это не очень эффективно.
private TreeMap aboveNbr_increment_map;
private Integer getIncrementValueAboveNbr(int nbr) {
// finds the valid increment below a certain price
Map.Entry entry = aboveNbr_increment_map.lastEntry();
while (entry != null) {
if (price>=entry.getKey()) {
return entry.getValue();
}
entry = aboveNbr_increment_map.lowerEntry(entry.getKey());
}
// otherwise return the lowest increment size
return aboveNbr_increment_map.get(aboveNbr_increment_map.firstKey());
}
public Integer getNextNbrAbove(int nbr) {
return nbr + this.getIncrementValueAboveNbr(nbr));
}
Подробнее здесь: [url]https://stackoverflow.com/questions/43007231/most-efficient-way-to-find-next-increment-in-a-big-number[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия