Я сижу здесь и пытаюсь выполнить эту задачу.
(https://open.kattis.com/problems/walrusweights)Добавьте ints, но выберите ближайший к числу, который я хочу
Первый вход содержит количество пластин следует использовать (INT).
РАСЧ после являются пластины (вес), и каждый из них должен быть < = 1000.
Добавить РАСЧ вместе и попытаться так близко к 1000, насколько это возможно, НО
в случае существует два таких числа, которые одинаково близко к 1000, (998 и 1002), затем выбирайте большую.
Говорят, что у меня есть 4 тарелки, то первый из них 4, 900, 500, 498.
Складывая их, так что вы пришли как можно ближе к 1000. 498 + 500 = 998.
500 + 498 + 4 = 1002.
В этом случае выбирают 1002.
int sum=0;
Scanner scan = new Scanner(System.in);
int count = scan.next();
for(int i = 0; i < count; i++)
{
sum = sum + scan.next();
}
или
Scanner scan = new Scanner(System.in);
int count = scan.nextInt();
while(count > 0) {
//your logic
count--;
}
Я попытался, но не понимаю логику/алгоритм сравнения добавленных чисел, и если они равны, выберите более высокий. Все, что я получаю, это то, что я могу положить счетчик и весы, и это добавит его, может кто-нибудь объяснить, как сделать алгоритм? Что я должен прочитать, чтобы понять это?
спасибо.
Знаете ли вы, что-нибудь о динамическом программировании раньше? –
Я сижу здесь с тремя книгами Java и пытаюсь понять Алгоритмы и как это работает, прочитал 2 из них, но ничего о динамическом программировании. У вас есть хороший совет/книги, сайты? Буду признателен, благодарю вас. – DMT82
Вы можете взглянуть на [это] (https: //www.topcoder.com/community/data-science/data-science-tutorials/dynamic-programming-from-novice-to-advanced /) или [this] (https://www.codechef.com/wiki/tutorial-dynamic-programming) –