Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
2 / 2 / 2
Регистрация: 02.03.2016
Сообщений: 75
1

Программа для нахождения суммы

09.07.2016, 00:48. Просмотров 543. Ответов 5

Здравствуйте! Всю ночь думаю, но никак не нашел решения. Надо написать программу, которая будет вначале спрашивать, сколько всего слагаемых будет использовано. Затем по одному будет записывать значение каждой переменной в массив с помощью prompt(). Когда запишутся все слагаемые, необходимо узнать сумму($s), которая должна получиться этими тремя слагаемыми.
Суть в том, что она должна сравнить суммы всех слагаемых друг с другом с нужной суммой ($s).
Какие слагаемые подойдут, нужно показать пользователю.

Подскажите, пожалуйста, каким путем можно сделать саму запись в массив? Пока не очень изучил массивы.
И еще не плохо было бы выслушать идеи по поводу счета)

Мой набросок:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
'use strict';
var i = +prompt("Введите общее количество слагаемых");
var ch = [];
 
function resh() {
    var k = i;
    return k;
}
for (ch[i]; ch[i] < resh() + 1; ch[i + 1]) {
    ch[i] = +prompt("Введите слагаемое");
    if(ch[i] < 9999999999999) {
} else {
    alert("Вы ввели НЕ число. Убедитесь, что не отправили пустую строку или не нажали на буквы. Строка должна содержать только числа.");
    var ch[i] = prompt('Введите первое число из возьми, по которым я буду решать задачу.');
}
}
var $o = +prompt('Введите ответ - чему равна сумма трех выборочных чисел и я найду числа, какие подставить, чтобы получить этот ответ.');
if($o < 9999999999999) {
} else {
    alert("Вы ввели НЕ число. Убедитесь, что не отправили пустую строку или не нажали на буквы. Строка должна содержать только числа.");
    $o = prompt('Введите первое число из возьми, по которым я буду решать задачу.');
};
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.07.2016, 00:48
Ответы с готовыми решениями:

Программа для нахождения суммы
Найти сумму \sum_{x=1}^{50}\frac{1}{x^^5}

Программа для нахождения суммы ряда
найти сумму ряда: s=1/x-1/(3x^3 )+1/(5x^5 )-… при x=1,5 с заданной точностью 0,01

Программа для нахождения суммы ряда
Нужна помощь. S=1^0+2^2+3^4+4^6...+n^2n-2

Программа для нахождения произведение суммы ряда
Помогите написать программу для такого выражения G=\prod_{x=1}^{17}\sum_{d=1}^{20}{(d/(2*d+1))}^{d}

5
Ренегат
Эксперт HTML/CSS
1731 / 1076 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
09.07.2016, 01:20 2
arr.push(Elem) Elem - элемент, который надо добавить, arr - массив, в который добавляем

Добавлено через 41 секунду
а по поводу счёта...
я не понял, вам тупо нужно сумму всех элементов массива?
1
2 / 2 / 2
Регистрация: 02.03.2016
Сообщений: 75
17.07.2016, 07:02  [ТС] 3
Нет. Мне нужно найти слагаемые, которые подходят под эту сумму. Например, даны 5, 12, 40, 35, 60, 11. Сумма = 111. Следовательно, программа должна вычислить, что мне подходят слагаемые 60, 40 и 11.
0
супермизантроп
Эксперт JS
3831 / 2913 / 682
Регистрация: 18.04.2012
Сообщений: 8,511
18.07.2016, 11:59 4
положим, сумма s = 100
количество ненулевых слагаемых n = 3

первое слагаемое а1 определится как случайное число в диапазоне от 1 до s - n
второе слагаемое а2 определится как случайное число в диапазоне от 1 до s - a1 - n - 1
третье слагаемое а3 будет равно точно s - a1 - a2

т.е. для решения вашей задачи массив как бы вообще не нужен
0
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
18.07.2016, 15:06 5
Цитата Сообщение от OneDev Посмотреть сообщение
Мне нужно найти слагаемые, которые подходят под эту сумму. Например, даны 5, 12, 40, 35, 60, 11. Сумма = 111. Следовательно, программа должна вычислить, что мне подходят слагаемые 60, 40 и 11.
Задача решается рекурсивно. Например:

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
function addends(sum, nums, i) {
    i = i || 0;
    while (i < nums.length) {
        var num = nums[i];
        if (sum == num) return [ num ];
        if (sum > num && nums.length) {
            var res = addends(sum - num, nums, i + 1);
            if (res) return [ num ].concat(res);
        }
        i++;
    }
    return false;
}
Для вашего набора данных:

Javascript
1
addends(111, [5, 12, 40, 35, 60, 11]); // ответ: [5, 35, 60, 11]
Как видно, решение не одно, алгоритм нашел самое первое.
0
2 / 2 / 2
Регистрация: 02.03.2016
Сообщений: 75
22.07.2016, 14:21  [ТС] 6
Простите, не совсем понял, как это работает) Дописал, но не запускается. Правильно ли я сделал ввод суммы и слагаемых? Вот концовка (вывод подобранных нужных слагаемых) мне кажется, точно неправильный..

Вот что получилось:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var sum = +prompt("Введите искомую сумму");
var nums[];
while (nums[k] == true) {
    var nums[k] = +prompt('Вводите слагаемые. Нажмите "Отмена", чтобы закончить ввод чисел');
    k++;
}
 
function addends(sum, nums, i) {
    i = i || 0;
    while (i < nums.length) {
        var num = nums[i];
        if (sum == num) return [ num ];
        if (sum > num && nums.length) {
            var res = addends(sum - num, nums, i + 1);
            if (res) return [ num ].concat(res);
        }
        i++;
    }
    return false;
}
 
alert(addends());
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.07.2016, 14:21

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Программа для нахождения суммы и произведения для наибольшего и наименьшего элемента матрицы
в заданной матрице (m x n) найти сумму и произведение наибольшего и наименьшего (по абсолютной...

Программа для нахождения суммы / произведения заданного ряда.
1. Дано действительное а и натуральное n. Вычислить: y = a (a-n) (a-2n) (a-3n) ... (a-n2) 2. Дано...

Программа для нахождения суммы элементов случайной матрицы a x b
Здравствуйте. Помогите пожалуйста найти ошибку.

Программа для нахождения суммы квадратов всех нечетных чисел
Знаю,что неправильно считает,3 раза подряд выдало 165,хотя вручную совсем другое число выходило. ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.