Как мы можем решить эту головоломку с помощью java ?
Sachin likes sweets a lot. So, he goes to a market of sweets. There is a row of sweet stalls. Every sweet stall has different sweets. To save some time, he decided to buy sweets from contiguous stalls. So, he can buy from as many stalls as he wants, but all of those stalls need to be contiguous. He also decided to buy only 1 kg of sweets from each of those stalls. Cost of 1 kg of sweets for each stall is given. There is a strange rule of billing in that market. And that rule is as follows- Total cost of all sweets bought is sum of the cost of all sweets multiplied by the cost of sweet he bought at the end. e.g. if he buys sweets having cost 2, 3, 4 in the same order than total cost of sweets will be 2*4+3*4+4*4=36.
Теперь он задается вопросом, какова будет общая стоимость всех возможных способов покупки сладостей. Вы можете ему помочь? Поскольку это число может быть большим, вы должны взять по модулю конечного результата 10^9+7.
Входная спецификация ваша функция содержит единственный аргумент - одномерный целочисленный массив размера N, в котором I-й элемент обозначает стоимость 1 кг конфет из I-го ларька. Первая строка входных данных содержит целое число N, обозначающее размер массива. (1<=N<=10^5) следующие N строк ввода, каждая из которых содержит одно целое число от 1 до 9.
Выходная спецификация вы должны вернуть целое число - сумму стоимости всех возможных способов покупки сладостей по модулю 10^9+7.
Примеры примерный тестовый случай 1 - вход 3 1 2 3
Результат 53
Объяснение возможные способы покупки сладостей таковы-
а) 1
Б) 1 2
в) 2
г) 1 2 3
д) 2 3
f) 3
стоимость каждого из них следующая-
а) 1*1= 1
Б) 1*2+2*2= 6
в) 2*2= 4
d) 1*3+2*3+3*3= 18
е) 2*3+3*3= 15
Е) 3*3= 9
Следовательно общая стоимость будет 1+6+4+18+15+9=53
Что я уже пробовал:
class A { static void printSubsets(int set[]) { int n = set.length; for (int i = 0; i < (1 << n); i++) { for (int j = 0; j < n; j++) { if ((i & (1 << j)) > 0) { System.out.print(set[j] + " "); } } System.out.println(); } } public static void main(String[] args) { int set[] = { 1, 2, 3 }; printSubsets(set); } }
Какой дополнительный код следует добавить, чтобы получить вышеприведенный результат?
ZurdoDev
Никто не напишет все это за вас, и очень невежливо просить кого-то об этом. Где именно вы застряли?
Member 13316008
Я не могу найти стоимостную часть программы .Может ли кто-нибудь дать мне представление об этом?
Richard MacCutchan
Это математический вопрос, поэтому вам нужно сначала решить его. Как только у вас есть решение, то писать код будет легко.