Форум программистов, компьютерный форум, киберфорум
Наши страницы
Алгоритмы
Войти
Регистрация
Восстановить пароль
 
Examnes
2 / 2 / 1
Регистрация: 04.11.2017
Сообщений: 46
1

Найти наименьшую сумму n слагаемых для ряда чисел

02.03.2018, 20:57. Просмотров 292. Ответов 5
Метки нет (Все метки)

Вот, дан ряд чисел, и дано количество слагаемых, а найти нужно наименьшую сумму для каких то n чисел
писал на c# примерно такое
C#
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
using System;
using System.Globalization;
 
namespace samolet
{
    class Program
    {
        static void Main(string[] args)
        {
            Airship air = new Airship();
        }
    }
    class Airship
    {
        public Airship()
        {
            #region обьявляю переменные
            int k;
            int n;
            int free=0;
            int index = 0;
            string rad;
 
            Console.WriteLine("Введите количество рядов и пассжиров , которых нужно посадить");
            n = Convert.ToInt32(Console.ReadLine());
            k = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Введите положения рядов");
            rad = Console.ReadLine();
            char[] radc = rad.ToCharArray();
 
            while (radc[rad.Length-1] == '+')
            {
                rad += Console.ReadLine();
            }
            #endregion
            #region считаю пары
            int[][] colvo_par = new int[rad.Length][];
            
            foreach (char c in radc)
            {
                if (c == '.')
                {
                    free++;
                    if (index == 0)
                    {
                        if (radc[index+1]=='S') { colvo_par[free] = new int[2] { 1, index };  }else { 
colvo_par[free] = new int[2] { 0, index };  }
                    }else
                    {
                        if(radc[index + 1] == 'S'&& radc[index - 1] == 'S')
                        {
                            colvo_par[free] = new int[2] { 2, index };
                        }else
                        {
                            if((radc[index + 1] == '.' && radc[index - 1] == '-')||(radc[index + 1] == '-' && radc[index - 1] == '.')|| (radc[index + 1] == radc[index - 1]))
                            {
                                colvo_par[free] = new int[2] { 0, index }; 
                            }
                            else
                                {
                                colvo_par[free] = new int[2] { 1, index };
                            }
                            {
                                
                            }
                        }
 
                    }
                }
                index++;
            }
            #endregion
 
            for(int i = 0; i <= Math.Pow(2, free);i++)// вот тут я уже не знаю что делать
            {
 
            }
 
 
            Console.ReadLine();
        }
 
    }
}
Это была задача про самолет, возможно это как то поможет
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.03.2018, 20:57
Ответы с готовыми решениями:

Найти сумму чисел от 100 до 200, кратных 17.
Найти сумму чисел от 100 до 200, кратных 17.

Найти сумму первых слагаемых числового ряда
Найти сумму первых слагаемых числового ряда an=7 /(n2-1) с заданной точностью e...

Вычислить сумму ряда для n слагаемых (1/(1*2*3))+(1/(2*3*4))+(1/(3*4*5))+(1/(4*5*6))+.....
Написать программу вычисления суммы ряда для n слагаемых ...

Посчитать сумму числового ряда+посчитать сумму ряда для 9 слагаемых
задача №1 у(n)=1-x+x^2-...+(-x)^n Посчитать сумму числового ряда для 9...

Найти наименьшую сумму чисел в последовательности
Дано n чисел,нужно найти наименьшую сумму последовательных чисел. Например: 5...

5
Shamil1
Модератор
2234 / 1522 / 346
Регистрация: 26.03.2015
Сообщений: 5,428
03.03.2018, 19:23 2
Цитата Сообщение от Examnes Посмотреть сообщение
Вот, дан ряд чисел, и дано количество слагаемых, а найти нужно наименьшую сумму для каких то n чисел
Если я правильно понял, есть массив чисел и нужно найти n самых маленьких.

1. Выбираем опорный элемент. Выбираем из массива все числа, которые меньше опорного (например, переставляем их в начало массива - как в алгоритме Быстрая Сортировка).
2. Всего таких чисел m.
Если m = n, то мы нашли n самых маленьких элементов массива, осталось посчитать их сумму.
Если m > n, то ищем n самых маленьких чисел среди выбранных (пункт 1).
Если m < n, то ищем (n - m) самых маленьких чисел среди оставшихся (пункт 1) и добавляем к их сумме сумму m выбранных.
0
Вадим Тукаев
98 / 84 / 67
Регистрация: 23.01.2018
Сообщений: 325
05.03.2018, 14:46 3
C#
1
2
3
4
5
6
7
8
9
10
11
12
using System;
using System.Linq;
 
class Program
{
    public static void Main()
    {
        int[] arr = Enumerable.Repeat(new Random(), 20).Select(r => r.Next(-100, 101)).ToArray();
        Console.WriteLine(String.Join(", ", arr));
        Console.WriteLine(String.Join(", ", arr.OrderBy(x => x).Take(5)));
    }
}
0
Shamil1
Модератор
2234 / 1522 / 346
Регистрация: 26.03.2015
Сообщений: 5,428
05.03.2018, 15:14 4
Цитата Сообщение от Вадим Тукаев Посмотреть сообщение
arr.OrderBy(x => x).Take(5)
O(N logN), а можно за O(N) вычислить.
0
Вадим Тукаев
98 / 84 / 67
Регистрация: 23.01.2018
Сообщений: 325
05.03.2018, 16:33 5
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
using System;
using System.Linq;
using System.Collections.Generic;
 
class Program
{
    public static void Main()
    {
        int[] arr = Enumerable.Repeat(new Random(), 20).Select(r => r.Next(-100, 101)).ToArray();
        Console.WriteLine(String.Join(", ", arr));
        SortedSet<int> que = new SortedSet<int>();
        foreach (int x in arr)
        {
            if (que.Count == 5) que.Remove(que.Max);
            que.Add(x);
        }
        Console.WriteLine(String.Join(", ", que));
    }
}
0
Shamil1
Модератор
2234 / 1522 / 346
Регистрация: 26.03.2015
Сообщений: 5,428
05.03.2018, 17:21 6
Цитата Сообщение от Вадим Тукаев Посмотреть сообщение
SortedSet<int>
Если среди пяти минимальных есть одинаковые, то посчитает неправильно.

Цитата Сообщение от Вадим Тукаев Посмотреть сообщение
if (que.Count == 5) que.Remove(que.Max); que.Add(x);
А если нет, то всё равно неправильно, так как этот код находит 4 минимальных + 1 последний.
1
05.03.2018, 17:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.03.2018, 17:21

Найти наименьшую сумму из 3-ёх рядом стоящих чисел.
Даны целые числа k, ... , k (n=12). Найти наименьшую сумму из 3-ёх рядом...

Найти наименьшую сумму из трех рядом стоящих чисел
всем привет. помогите пожалуйста решить задачку) Даны целые числа k,...,k...

Посчитать сумму указанного в варианте ряда для заданного значения x и точности (количества слагаемых)
Посчитать сумму указанного в варианте ряда для заданного значения x и точности...


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

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

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