Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: помогите - задачка алимпиады Добавлено: 09.09.05 18:23  

Автор вопроса:  nicolai | ICQ: 197368786 
нужно на поле (к примеру массив N на N)
спирально разместить цифры по возрастанию(или убыванию неважно)
хелп

Ответить

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

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



Вопросов: 0
Ответов: 1876


 Профиль | | #1 Добавлено: 09.09.05 20:48
Если ты точно привёл условие, то я не верю, что это олимпиадная задача.

Ответить

Номер ответа: 2
Автор ответа:
 nicolai



ICQ: 197368786 

Вопросов: 6
Ответов: 91
 Профиль | | #2 Добавлено: 09.09.05 21:46
а что в ней не так может и условие чуть иначе но смысл я передал

Ответить

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


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #3 Добавлено: 09.09.05 23:11
спирально разместить цифры


каждый поймёт по своиму... По какой спирали, с какой стороны начинать? в какую сторону спираль???

Ответить

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



Разработчик Offline Client

ICQ: 343368641 

Вопросов: 17
Ответов: 686
 Web-сайт: barsik.newmail.ru
 Профиль | | #4
Добавлено: 09.09.05 23:11
т.е. циклом?

Ответить

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


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #5
Добавлено: 10.09.05 03:12
Вполне может быть, что олимпиадная, просто это очень нудное дело. Я бы заполнял, разбив квадрат на "слои", а каждый слой на 4 стороны, типа для квадрата 5х5 слои 1-16, 17-24, 25, а 4 стороны соответственно по 4 и 2 числа.

Ответить

Номер ответа: 6
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #6
Добавлено: 10.09.05 18:26
А можно тупо через смещения и перед каждым шагом проверять, можно ли сместиться, т.е. надо, чтобы клетка была пуста и не была крайней. Тогда на поворотах получается, что 2 клетки либо заняты, либо крайние, одна с которой пришли, остается одна. Получается 4 условия перед каждым сдвигом и программа готова. Писать влом, конечно :)

Ответить

Номер ответа: 7
Автор ответа:
 nicolai



ICQ: 197368786 

Вопросов: 6
Ответов: 91
 Профиль | | #7 Добавлено: 10.09.05 19:03
воти я через смещение делаю - если песта ( занята нулем ) то прямо ели занята то сорачиваем, то т о и оно влом все ето писать

Ответить

Номер ответа: 8
Автор ответа:
 «UL.eXe»



ICQ: 197.895.916.247 

Вопросов: 72
Ответов: 540
 Профиль | | #8 Добавлено: 11.09.05 22:28
нужно на поле (к примеру массив N на N)
спирально разместить цифры по возрастанию(или убыванию неважно)
хелп


Заходишь в Photoshop =)) и рисуешь по возрастанию(убыванию) цифры в виде спирали...

Ответить

Номер ответа: 9
Автор ответа:
 nicolai



ICQ: 197368786 

Вопросов: 6
Ответов: 91
 Профиль | | #9 Добавлено: 13.09.05 06:55
нее надо не рисовать, а програмно исполнить

Ответить

Номер ответа: 10
Автор ответа:
 AndreyIl



ICQ: 260668334 

Вопросов: 1
Ответов: 13
 Профиль | | #10 Добавлено: 25.11.05 09:16
Вот решение задачи (грибник ходит по спирали, каждый шаг изменяется на 90 градусов и удлиняется на 1). Не знаю, то это или нет. Может, кому будет интересно.

X = Fix((i + 1) / 2) * (-1) ^ Fix((i - 1) / 2)
Y = Fix((4 - i + Fix((i - 1) / 4) * 4) / 2) + X * (-1) ^ (i - Fix((i - 1) / 4) * 4)
Me.Caption = i & " : ( " & X & ";" & Y & ";)"


Эта функция верна для i>=1 (соответствует условию).
График функции Y - "Хренябола грибника".

Ответить

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



ICQ: 225421504 

Вопросов: 8
Ответов: 60
 Профиль | | #11 Добавлено: 21.12.05 20:56
DECLARE SUB spir (n!)
DECLARE SUB pechat (n!)
Cls
 INPUT "Bz"; n
 ;Dim A(n, n)
 spir n
 pechat n
End

Sub pechat(n)
For i = 1 To n: Print " "; A(i, 1);: Next i
Print
For i = 2 To n
 For J = 1 To n
  Print A(J, i);
 Next J
 Print
Next i

End Sub

Sub spir(n)
 X1 = 1: Y1 = 1
 X2 = n: Y2 = 1
 x3 = n: y3 = n
 x4 = 1: y4 = n
 h1 = n \ 2 + 1
 For h = 1 To h1
  For p = X1 To X2: A(p, Y1) = s: s = s + 1: Next p: X1 = X1 + 1: Y1 = Y1 + 1
  For p = Y2 + 1 To y3: A(X2, p) = s: s = s + 1: Next p: X2 = X2 - 1: Y2 = Y2 + 1
  For p = x3 - 1 To x4 Step -1: A(p, y3) = s: s = s + 1: Next p: y3 = y3 - 1: x3 = x3 - 1
  For p = y4 - 1 To Y1 Step -1: A(x4, p) = s: s = s + 1: Next p: y4 = y4 - 1: x4 = x4 + 1
 Next h
End Sub
задача уровня 1-го итапа из трёх написанна на QB должна работать(осталась)!

Ответить

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



ICQ: 225421504 

Вопросов: 8
Ответов: 60
 Профиль | | #12 Добавлено: 21.12.05 20:58
расскажите о методе подробнее! и как вывели?

Ответить

Страница: 1 |

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



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