Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Олимпиады

Страница: 1 |

 

  Вопрос: Наверняка вы эту задачу уже решали Добавлено: 16.01.06 23:35  

Автор вопроса:  Xrum
Дан ряд чисел. Нужно расставить между ними "+" и "-" так, чтобы сумма равнялась задаваемому числу

Ответить

  Ответы Всего ответов: 5  

Номер ответа: 1
Автор ответа:
 Neco



ICQ: 247906854 

Вопросов: 133
Ответов: 882
 Web-сайт: neco.pisem.net
 Профиль | | #1
Добавлено: 17.01.06 04:04
Перебор всех вариантов.

Ответить

Номер ответа: 2
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #2
Добавлено: 17.01.06 11:18
Сортировать числа по убыванию и потом подбирать более интеллектуально. Не делал, но перебор всех вариантов после сортировки сработает быстрее..

Ответить

Номер ответа: 3
Автор ответа:
 Wolfrt



ICQ: 225421504 

Вопросов: 8
Ответов: 60
 Профиль | | #3 Добавлено: 17.01.06 21:26
сортировка не поможет!
Заинтересовала меня задача думаю за пару часов решу! Если нет то я последний ламер!

Ответить

Номер ответа: 4
Автор ответа:
 Wolfrt



ICQ: 225421504 

Вопросов: 8
Ответов: 60
 Профиль | | #4 Добавлено: 17.01.06 23:12
Public i, j, v, nn, S, s1 As Double
    Public n As Double = 3
    Public b As Double = -1
    Public z(3) As Int16
    Public a(4) As Double

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        ;Dim tex As String = ""
        a(1) = 1
        a(2) = 2
        a(3) = 3
        a(4) = 4
        S = a(1)
        s1 = 0
        For nn = 1 To n ^ 2
            b = b + 1
            If b >= 1 Then
                For i = n To b Step -1
                    If z(i) = 0 Then
                        z(i) = 1
                        Exit For
                    Else
                        For j = i - 1 To 1 Step -1
                            If z(j) = 0 Then
                                z(j) = 1
                                For v = j + 1 To n
                                    z(v) = 0
                                Next v
                                Exit For
                            End If
                        Next j
                    End If
                    Exit For
                Next i
                If b = n Then b = 0
            End If
            For i = 1 To n
                If z(i) = 0 Then
                    S = S - a(i + 1)
                Else
                    S = S + a(i + 1)
                End If
            Next i
            If S = s1 Then
                For i = 1 To n
                    If z(i) = 0 Then
                        tex = tex + a(i).ToString + "-"
                    Else
                        tex = tex + a(i).ToString + "+"
                    End If
                Next i
                Exit For
            Else
                S = a(1)
            End If
        Next nn
        TextBox1.Text = tex + a(i).ToString + "=" + s1.ToString
    End Sub
извольте получить демо версию!

Ответить

Номер ответа: 5
Автор ответа:
 Xrum



Вопросов: 14
Ответов: 14
 Профиль | | #5 Добавлено: 18.01.06 00:16
Извольте получить благодарность!

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам